0

我有一个应该围绕文本的 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");'

但是这两种解决方案都不适合我。有人知道我在这里缺少什么吗?

谢谢。

4

0 回答 0