Skip to content

HelloVass/FaceTextLayout

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
app
 
 
 
 
 
 
 
 
 
 
 
 
 
 

FaceTextInputLayout

问题

如何对长度不一的颜文字进行整齐的排版呢!

Thanks

真的非常感谢这位童鞋提供的思路,大家有兴趣可以看看 FaceText

功能

  1. 模仿 QQ输入法颜文字 的排版
  2. 为颜文字设置 selector
  3. 提供颜文字点击回调接口
  4. ...

效果演示

小瑕疵

1.虽然改进版的排版算法已经可以排版排的很漂亮了,但是,如果要让用户体验更棒,建议还是辛苦下产品童鞋给颜文字排下版吧!

2.尽可能地降低 View 层级

3.玄学曲线

用法

public class FaceLayoutDemoActivity extends AppCompatActivity {

  @Override protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_face_text_demo);

    FaceTextInputLayout faceTextInputLayout =
        (FaceTextInputLayout) findViewById(R.id.tv_face_text_input_layout);

    // 设置“颜文字source”
    faceTextInputLayout.setFaceTextSource(new RawSource(this,R.raw.face_text));

    // 设置点击事件
    faceTextInputLayout.setOnFaceTextClickListener(new OnFaceTextClickListener() {
      @Override public void onFaceTextClick(FaceText faceText) {
        Toast.makeText(FaceLayoutDemoActivity.this, faceText.content, Toast.LENGTH_SHORT).show();
      }
    });
  }
}