![](/img/trans.png)
[英]Android, Why my custom square ImageView on emulator has curve corner while on real device doesn't have?
[英]Why isn't my Image setting to a Square in my ImageView in Android?
我试图在48 x 48的ImageView中将从我的sdcard检索到的图像设置为正方形。 我已经完成了以下编码,但是图像仍然设置为Rectangle。有人可以一步一步告诉我怎么做吗?
Bitmap bmp = BitmapFactory.decodeFile(f.getAbsolutePath());
Bitmap myBitmap = Bitmap.createBitmap(bmp.getWidth(), bmp.getHeight(), Bitmap.Config.ARGB_8888);
Paint paint = new Paint();
Canvas cc = new Canvas(myBitmap);
cc.drawRect(48,48,48,48, paint);
frndsimag.setImageBitmap(bmp);
只是猜测,但是ImageView
frndsimag
可能只是矩形,并且显示的图像会拉伸以填充空间。
很难说,看不到布局xml,但是例如,您可以尝试更改frndsimag
scaleType
。
frndsimag.setScaleType(ScaleType.CENTER);
我看到此代码有2个问题。 首先,您将传递给ImageView原始位图bmp
而不是myBitmap
。 其次,新位图的大小与原始大小相同。 如果您没有为ImageView设置android:scaleType,它将使用相同数量的空间。
为了实现您的目标,我将执行以下操作。 假设您正在XML布局中定义ImageView,请将android:width
和android:height
为48dp,并将android:scaleType=fitXY
填充整个空间或centerInside
如果您希望保持原始比例)。
然后,您的代码可以缩小为:
Bitmap bmp = BitmapFactory.decodeFile(f.getAbsolutePath());
frndsimag.setImageBitmap(bmp);
如果您的图片很大,明智的做法是使用此页面http://developer.android.com/training/displaying-bitmaps/load-bitmap.html上的优化技术
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.