我有一个应该围绕文本的 Ninepatch 图像(语音气泡)。当我设置 textview 的背景时,气泡显示为它应该没有指定宽度或高度(它应该调整到文本的内容)。我的问题是,当从磁盘读取完全相同的图像时,图像会调整大小。
我在 stackoverflow 上阅读了很多不同的答案,但没有找到任何真正适合我的解决方案。
xml 文件:
<TextView
android:id="@+id/someText"
android:layout_marginBottom="20dp"
android:layout_marginTop="10dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:textColor="@android:color/background_dark"
android:singleLine="true"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="This is a a line. "
/>
我已经尝试调整图像(如here所建议)如下:
private Drawable adjustImage(Drawable image){
if(image == null)
return null;
Bitmap bitmapOrg = ((BitmapDrawable) image).getBitmap();
int width = bitmapOrg.getWidth();
int height = bitmapOrg.getHeight();
Matrix matrix = new Matrix();
Bitmap resizedBitmap = Bitmap.createBitmap(bitmapOrg, 0, 0,
width, height, matrix, true);
return new BitmapDrawable(resizedBitmap);
}
还尝试了另一个建议的解决方案:
TypedValue typedValue = new TypedValue();
//density none divides by the density, density default keeps the original size
typedValue.density = TypedValue.DENSITY_DEFAULT;
Drawable d = Drawable.createFromResourceStream(null, typedValue, fis, "test");'
但是这两种解决方案都不适合我。有人知道我在这里缺少什么吗?
谢谢。