Android 如何设置 TextView 中 Drawable 的大小

梦想实践者 2024-07-28 ⋅ 31 阅读

在 Android 应用开发中,我们常常需要在 TextView 中显示文本以及一个与文本相匹配的图标。这种图标通常可以用来表示一些特定的操作或状态,比如展示一个搜索图标,或者显示一个已读或未读的标记。

然而,有时候默认情况下,该图标显示的尺寸可能与我们所期望的不一致。这时我们需要通过代码来调整这个 Drawable 的大小,以便更好地适应我们的界面。

方法一:使用 setCompoundDrawables 方法

Android 中的 TextView 类提供了一个 setCompoundDrawables 方法,可以用于设置 TextView 中的四个方向上的 Drawable(左、上、右、下)。我们可以利用该方法将一个调整过大小的 BitmapDrawable 对象设置给 TextView。

以下是一个示例代码:

// 获取 TextView
TextView textView = findViewById(R.id.textView);

// 获取 drawable 对象
Drawable drawable = getResources().getDrawable(R.drawable.icon);
// 调整 drawable 尺寸
drawable.setBounds(0, 0, drawable.getIntrinsicWidth() / 2, drawable.getIntrinsicHeight() / 2);
// 设置 TextView 的左侧图标
textView.setCompoundDrawables(drawable, null, null, null);

以上代码将图标设置在 TextView 的左侧,并将图标的尺寸调整为原始大小的一半。

方法二:使用 BitmapDrawable

除了使用 setCompoundDrawables 方法,我们还可以通过 BitmapDrawable 的方式来设置 TextView 中的 Drawable 大小。

以下是一个示例代码:

// 获取 TextView
TextView textView = findViewById(R.id.textView);

// 获取 drawable 对象
Drawable drawable = getResources().getDrawable(R.drawable.icon);
Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap();
// 调整 bitmap 尺寸
Bitmap resizedBitmap = Bitmap.createScaledBitmap(bitmap, bitmap.getWidth() / 2, bitmap.getHeight() / 2, true);
// 将 bitmap 转换为 BitmapDrawable 对象
BitmapDrawable resizedDrawable = new BitmapDrawable(getResources(), resizedBitmap);
// 设置 TextView 的左侧图标
textView.setCompoundDrawables(resizedDrawable, null, null, null);

以上代码将图标设置在 TextView 的左侧,并将图标的尺寸调整为原始大小的一半。

总结

通过以上两种方法,我们可以方便地调整 TextView 中 Drawable 的大小,以便更好地适应我们的界面。无论是使用 setCompoundDrawables 方法,还是通过 BitmapDrawable 的方式,我们都可以轻松地实现这一目标。

希望本文能对你理解 Android 中如何设置 TextView 中 Drawable 的大小有所帮助。如有任何问题或疑问,欢迎留言讨论!

参考链接:


全部评论: 0

    我有话说: