使用1.6 SDK将设备独立且与屏幕无关的图像加载到布局视图中

时间:2010-03-31 00:09:08

标签: android image scale

我在加载资产图片时难以扩大规模。在SDK上没有对BitmapDrawable(Resources,BitmapDrawable)的新调用。 是否有一种解决方法以旧方式加载BitmapDrawable然后以某种方式操纵它?我试过调用setTargetDensity()无济于事。我的代码(无法正确缩放)是:

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

1 个答案:

答案 0 :(得分:5)

在做了一些好的旧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);
     

有关背景信息,请参阅http://d.android.com/guide/practices/screens_support.html