我们在用TextView的时候,有时候文本前后都会有一个图片,而这个图片大小在布局中是无法设置的,只有通过 setCompoundDrawables 设置时,给定Drawable的宽高才可以,这无疑是比较麻烦的,如果设置多个方向的图片,又不能单独设置距离文本的距离,另外这个图片是不能够单独点击的,为此我写了一个加强版的
PerfectTextView
传送门:
https://github.com/FlyJingFish/PerfectTextView
支持功能:
1、四个位置的图片在布局中也可单独设置大小
2、四个位置的图片可以单独设置距离文字的距离
3、四个位置的图片可以设置点击、双击、长按事件监听
4、支持设置选中(
setSelected
)时的文本
5、支持单独为四个位置中的一个设置大小、图片、距离文本距离
6、支持为文本区域设置背景
使用起来也很简单
布局中
<com.flyjingfish.perfecttextviewlib.PerfectTextView
android:id="@+id/hollowTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
android:background="@drawable/bg_press"
android:gravity="center"
android:textStyle="bold"
android:padding="10dp"
android:textColor="@color/press_color"
android:layout_marginTop="10dp"
app:perfect_drawableStart_width="40dp"
app:perfect_drawableStart_height="40dp"
app:perfect_drawableEnd_width="100dp"
app:perfect_drawableEnd_height="100dp"
app:perfect_drawableTop_width="20dp"
app:perfect_drawableTop_height="20dp"
app:perfect_drawableBottom_width="50dp"
app:perfect_drawableBottom_height="50dp"
android:drawablePadding="40dp"
app:perfect_drawableStart_padding="20dp"
app:perfect_drawableEnd_padding="10dp"
app:perfect_drawableTop_padding="30dp"
app:perfect_drawableBottom_padding="30dp"
app:perfect_selected_text="@string/app_name"
app:perfect_text_background="@drawable/bg_text_press"
app:perfect_text_background_scope="wrappedText"
android:drawableTop="@drawable/press_icon"
android:drawableStart="@drawable/select_icon"
android:drawableEnd="@drawable/select_icon"
android:drawableBottom="@drawable/press_icon"
android:textSize="30sp"/>
以下是监听:
textView.setOnDrawableLeftClickListener(v -> {
Toast.makeText(this,"setOnDrawableLeftClickListener",Toast.LENGTH_SHORT).show();
Log.e("PerfectTextView", "setOnDrawableLeftClickListener");
binding.hollowTextView.setDrawableLeftSelected(true);
});
textView.setOnDrawableLeftDoubleClickListener(v -> {
Toast.makeText(this,"setOnDrawableLeftDoubleClickListener",Toast.LENGTH_SHORT).show();
Log.e("PerfectTextView", "setOnDrawableLeftDoubleClickListener");
binding.hollowTextView.setDrawableLeftSelected(false);
});
textView.setOnDrawableLeftLongClickListener(v -> {
Toast.makeText(this,"setOnDrawableLeftLongClickListener",Toast.LENGTH_SHORT).show();
Log.e("PerfectTextView", "setOnDrawableLeftLongClickListener");
return true;
});
设置图片
textView.setDrawableLeft(R.mipmap.ic_launcher_round);//设置图片
textView.setDrawableStartPadding(100);//设置距离文字距离
textView.setDrawableStartWidthHeight(100,100);//设置宽高
textView.setSelectedText("选中时显示的文本");//设置选中时显示的文本
版权声明:本文为u013077428原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。