我刚刚了解了TextView.setCompoundDrawables()
,我在ListView中使用它来将图像放在文本的左侧。问题是缩略图图像的大小不同,因此文本遍布整个地方。是否有一种简单的方法可以使文本在左侧很好地排列?
代码:
TextView machineText = (TextView) v
.findViewById(android.R.id.text1);
machineText.setCompoundDrawablesWithIntrinsicBounds(thumbnail,
null, null, null);
截图:
答案 0 :(得分:1)
您可以使用setCompoundDrawablePadding(int pad)来动态更改drawable和text之间的填充。你应该做的是编写自己的ListAdapter并在自定义listitem布局中布局每个图像和文本。会容易得多。我的经验是位图复合绘图在不同的设备上看起来会有很多不同。
答案 1 :(得分:1)
Imageview / ImageButton是我熟悉的唯一可以进行缩放控制的视图。
如果您将图片放在图片视图中并将文本视图放在右侧,您将获得更多控件的相同效果。然后,您可以缩放图像。 ScaleType = fitxy将确保将图像绘制到两个xy边框。缺点是图像可能会显得拉伸,如果它们不适合自然。但是你也可以玩其他比例类型。
<ImageView
android:id="@+id/my_iv"
android:layout_width="30dp"
android:layout_height="match_parent"
android:scaleType="fitXY"
android:src="@drawable/overflow"
/>
<TextView
android:layout_height="match_parent"
android:layout_width="match_parent"
android:layout_toRightOf="@id/my_iv"
/>
我没有使用TextView + drawable选项,但您也可以尝试确保图像本质上具有相同的大小。我不确定android在部分textview时选择drawable大小,所以我不确定这是否有效。
答案 2 :(得分:0)
试试这个:
TextView machineText = (TextView) v.findViewById(android.R.id.text1);
thumbnail.setBounds(60, 60, 60, 60);
machineText.setCompoundDrawables(bd, null, null, null);
而不是60根据需要设置边界。