想知道如何调整TextView
中LinearLayout
xml内的图片大小。我使用setCompoundDrawablesWithIntrinsicBounds
方法阅读了一些解决方案,但无法正确使用。
这是图片:
我想减小徽标的大小。
这是我的TextView代码:
<TextView
android:id="@+id/heading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/android_logo"
android:drawableStart="@drawable/android_logo"
android:gravity="top"
android:padding="16dp"
android:singleLine="true"
android:text="@string/heading"
android:textSize="20dp"
android:drawablePadding="5dp"/>
答案 0 :(得分:5)
尝试:
android:scaleX="0.7"
android:scaleY="0.7"
或强>
将您的资源包装在一个drawable中,该drawable定义了您所需的大小,类似于:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:drawable="@drawable/icon"
android:width="@dimen/icon_size"
android:height="@dimen/icon_size"
/>
</layer-list >
然后在可绘制的左侧使用它。
答案 1 :(得分:2)
只有一种解决方案可以拍摄图像的图像视图并调整图像大小但文本显示图像右侧。你使用下面的代码,我希望你的问题得到解决..
<?xml version="1.0" encoding="utf-8"?>
<ImageView
android:id="@+id/icon"
android:layout_width="30dp"
android:layout_height="30dp"
android:src="@drawable/ic_person" />
<TextView
android:id="@+id/heading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:drawablePadding="5dp"
android:gravity="top"
android:padding="5dp"
android:singleLine="true"
android:text="heading"
android:textSize="20dp"
app:layout_constraintLeft_toRightOf="@+id/icon" />
答案 2 :(得分:0)
程序化解决方案:
您可以使用drawable.setBounds
,但它需要像素而不是dp作为参数。
代码:
Drawable drawable = getDrawable(R.drawable.ic_your_drawable);
int size = dp2px(this, dpSize);
if (drawable != null) {
drawable.setBounds(0, 0, size, size);
}
textView.setCompoundDrawables(drawable, drawable, drawable, drawable); // should be (drawable, null, null, null) for you