位图高度和宽度自动缩放为res文件夹中的drawable,但不适用于从URL创建的drawable

时间:2014-12-11 15:53:11

标签: android image bitmap drawable

我只是尝试从URL下载图像并将其转换为Drawable并将其设置为TextView的DrawableLeft,但是对于那些我使用

加载的图像
  

getResources().getDrawable(context, R.drawable.blahblahblah)

可绘制对象的 mBitmapHeight mBitmapWidth 属性会自动设置为图像原始宽度和高度的2倍左右( 我在mdpi,hdpi和xhdpi文件夹中有3个不同比例的相同图像,而对于我从URL下载的图像,我为下载的图像指定了位图对象的密度:

DisplayMetrics metrics = context.getResources().getDisplayMetrics();
bitmap.setDensity(metrics.densityDpi);

并创建了一个BitmapDrawable

BitmapDrawable d = new BitmapDrawable(context.getResources(), bitmap);

但是这两个属性被设置为一个等于图像原始高度和宽度的值,这使得当我使用内在高度和宽度设置其边界时,drawable非常小。

我不知道系统如何为从res文件夹加载并从URL下载的图像设置不同的高度和重量。如果有人能就此分享一些想法,我将非常感激。谢谢!

更新

我设置了这样的可绘制边界:

    if (icon != null) {
        int lh = icon.getIntrinsicHeight();
        int lw = icon.getIntrinsicWidth();
        icon.setBounds(0, 0, lw, lh);
    }

“icon”是Drawable。然后我将此图标设置为

textView.setCompoundDrawables(icon, null, rightIcon, null);

0 个答案:

没有答案