【问题标题】:Android scaling imageview from setImageBitmapAndroid 从 setImageBitmap 缩放图像视图
【发布时间】:2013-05-25 11:25:28
【问题描述】:

我有这个代码:

<ImageView
android:id="@+id/listitem_logo"
android:layout_width="match_parent"                                   
android:layout_height="wrap_content" />

imageview_logo.setImageBitmap(bit); // comes from assets
imageview_logo.setAdjustViewBounds(true);        
imageview_logo.setScaleType(ImageView.ScaleType.FIT_CENTER);
imageview_logo.setBackgroundColor(0x00000000); 
imageview_logo.setPadding(0, 0, 0, 0);
imageview_logo.setVisibility(v.VISIBLE);

以这种方式加载图像时,似乎没有进行任何缩放。但是,如果我通过 setImageDrawable() r.res. 加载图像,ImageView 中的图像会被调整大小。但是,我需要使用 setImageBitmap(),因为我是通过 assets 文件夹加载图像的。

我在这里错过了一些设置吗?这将使Android调整和缩放位图,所以它使用ImageView的全宽?我想我可以自己在代码中做到这一点,但我想我想做的只是通过设置一些属性来支持。

【问题讨论】:

  • 尝试使用setImageDrawable()
  • setImageDrawable 不接受位图。
  • 使用 CENTER_CROP 作为 scaletype 和 WRAP_CONTENT 作为宽度
  • Drawable d = new BitmapDrawable(getResources(),bitmap);
  • 然后将Drawable转换为位图

标签: android android-imageview android-image


【解决方案1】:

不能信任系统的一切,特别是有时表现非常不同的 android。 您可以调整位图的大小。

height = (Screenwidth*originalHeight)/originalWidth;

这将生成适当的高度。 宽度等于您提到的屏幕宽度。

Bitmap pq=Bitmap.createScaledBitmap(pq,Screenwidth,height, true);

【讨论】:

    【解决方案2】:

    由于我需要一些时间来弄清楚完成这项工作的完整代码,因此我根据之前的答案在此处发布了一个完整示例:

       ImageView bikeImage = (ImageView) view.findViewById(R.id.bikeImage);
       AssetLoader assetLoader = new AssetLoader(getActivity());
       Bitmap bitmap = assetLoader.getBitmapFromAssets(
                    Constants.BIKES_FOLDER + "/" + bike.getName().toLowerCase()
                            .replace(' ', '_').replace('-', '_') + ".png");
       int width = getActivity().getResources().getDisplayMetrics().widthPixels;
       int height = (width*bitmap.getHeight())/bitmap.getWidth();
       bitmap = Bitmap.createScaledBitmap(bitmap, width, height, true);
       bikeImage.setImageBitmap(bitmap);
    

    【讨论】:

      猜你喜欢
      • 2012-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-31
      相关资源
      最近更新 更多