给 TextView 设置 Drawable 图片是我们最常用的需求了,但是蛋疼的是,这种设置的 Drawable 是无法调节图片大小的,经常不满足我们的需求,如果我们使用 textview + imageview 来绕过去,那就显得我们太 low 了
这里提供 2 种思路:
1. 代码调整 Drawable 大小再传给 TextView
这个思路很简单
TextView textView = new TextView(mContext);
Drawable drawable = getResources().getDrawable(R.drawable.icon_friend);
// 设置图片的大小
drawable.setBounds(0, 0, 20, 20);
// 设置图片的位置,左、上、右、下
textView.setCompoundDrawables(null, null, drawable, null);
麻烦的是我们要写 2 行代码,要是需求频繁的应该拓展一个 TextView 出来,我是懒得再去写了,需要的直接去这里 copy:TextView中DrawableXXX图片无法设置大小的解决方案
或者可以用 TextView 自身的 API
textView.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.icon, 0);
2. 使用 layer-list 图层
layer-list 里面每个图片资源都能设置大小,所以我们就用 layer-list 来绕一下
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:width="10dp"
android:height="10dp"
android:drawable="@drawable/logo2"/>
</layer-list>
网友评论