android - 使用 1.6 SDK 以独立于设备和屏幕的方式将图像加载到布局 View 中

标签 android image scale

我在加载 Assets 图像时无法按比例放大它。对 BitmapDrawable(Resources, BitmapDrawable) 的新调用在 1.6 SDK 上不可用。 是否有解决方法以旧方式加载 BitmapDrawable 然后以某种方式对其进行操作?我试过调用 setTargetDensity() 无济于事。我的代码(无法正确缩放)是:

    ImageView iv = (ImageView)view.findViewById(R.id.image);
 iv.setImageDrawable(new BitmapDrawable(view.getContext().getAssets().open(path)));

最佳答案

在做了一些不错的旧 RTFM 之后,我找到了一种有效的方法。 以下代码有效:

  ImageView iv = (ImageView)view.findViewById(R.id.image);
    BitmapFactory.Options opts = new BitmapFactory.Options();
    opts.inScaled = true;
    opts.inDensity = DisplayMetrics.DENSITY_MEDIUM;
    Rect padding = new Rect();
    opts.inTargetDensity = view.getResources().getDisplayMetrics().densityDpi;
    Bitmap bm = BitmapFactory.decodeStream(view.getContext().getAssets().open(path), padding, opts);
    iv.setImageBitmap(bm);

For background see http://d.android.com/guide/practices/screens_support.html

关于android - 使用 1.6 SDK 以独立于设备和屏幕的方式将图像加载到布局 View 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2549548/

相关文章:

r - ggplot2 热图,带条件的色标

map - 为什么我的 D3 缩放变换没有正确居中?

android - 如何获取任意矩阵的缩放值?

android - 创建apk时报错: this class should provide a default constructor (…) [Instantiatable],

android - ViewCompat.getLayoutDirection 在 onResume() 之前不会返回正确的布局

image - Flutter使BG图像成为本地存储图像

android - 来自画廊/相机 Intent 的图片方向

android - Textview 没有截断文本

android - 如何让 Logcat 在 Android Studio 中保持全屏

html - 对齐 HTML 表格中的图像