下面列出了android.widget.TextView#setLayerType ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
public void addEmoji(String emojiName, Typeface emojiFont) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View emojiRootView = inflater.inflate(R.layout.photo_editor_sdk_text_item_list, null);
TextView emojiTextView = (TextView) emojiRootView.findViewById(R.id.photo_editor_sdk_text_tv);
emojiTextView.setTypeface(emojiFont);
emojiTextView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
emojiTextView.setText(convertEmoji(emojiName));
MultiTouchListener multiTouchListener = new MultiTouchListener(deleteView,
parentView, this.imageView, onPhotoEditorSDKListener);
multiTouchListener.setOnMultiTouchListener(this);
emojiRootView.setOnTouchListener(multiTouchListener);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE);
parentView.addView(emojiRootView, params);
addedViews.add(emojiRootView);
if (onPhotoEditorSDKListener != null)
onPhotoEditorSDKListener.onAddViewListener(ViewType.EMOJI, addedViews.size());
}
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView) findViewById(R.id.text);
textView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
RichText.from(GIF_TEST).autoFix(false).showBorder(true).autoPlay(true).into(textView);
}
/**
* Get root view by its type i.e image,text and emoji
*
* @param viewType image,text or emoji
* @return rootview
*/
private View getLayout(final ViewType viewType) {
View rootView = null;
switch (viewType) {
case TEXT:
rootView = mLayoutInflater.inflate(R.layout.view_photo_editor_text, null);
TextView txtText = rootView.findViewById(R.id.tvPhotoEditorText);
if (txtText != null && mDefaultTextTypeface != null) {
txtText.setGravity(Gravity.CENTER);
if (mDefaultEmojiTypeface != null) {
txtText.setTypeface(mDefaultTextTypeface);
}
}
break;
case IMAGE:
rootView = mLayoutInflater.inflate(R.layout.view_photo_editor_image, null);
break;
case EMOJI:
rootView = mLayoutInflater.inflate(R.layout.view_photo_editor_text, null);
TextView txtTextEmoji = rootView.findViewById(R.id.tvPhotoEditorText);
if (txtTextEmoji != null) {
if (mDefaultEmojiTypeface != null) {
txtTextEmoji.setTypeface(mDefaultEmojiTypeface);
}
txtTextEmoji.setGravity(Gravity.CENTER);
txtTextEmoji.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}
break;
}
if (rootView != null) {
//We are setting tag as ViewType to identify what type of the view it is
//when we remove the view from stack i.e onRemoveViewListener(ViewType viewType, int numberOfAddedViews);
rootView.setTag(viewType);
final ImageView imgClose = rootView.findViewById(R.id.imgPhotoEditorClose);
final View finalRootView = rootView;
if (imgClose != null) {
imgClose.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
viewUndo(finalRootView, viewType);
}
});
}
}
return rootView;
}