这是我的xml代码:
<ImageView
android:id="@+id/ColImgPath"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:adjustViewBounds="true"
android:background="@drawable/border"/>
这是我的java代码,它在listview中:
ImageView imageView = (ImageView) convertView.findViewById(R.id.ColImgPath);
imageView.setPadding(5, 5, 5, 5);
imageView.setVisibility(View.VISIBLE);
try {
Bitmap bmp = ((Bitmap) MyArrList.get(position).get("ImageThumBitmap"));
int bmpx = bmp.getWidth();
int bmpy = bmp.getHeight();
Log.i("INFO","X: "+bmpx+" Y: "+bmpy);
Bitmap photobitmap1 = Bitmap.createScaledBitmap(bmp, bmpx/2,bmpy/2, true);
imageView.setImageBitmap(photobitmap1);
//imageView.setImageBitmap((Bitmap) MyArrList.get(position).get("ImageThumBitmap"));
} catch (Exception e) {
// When Error
imageView.setImageResource(android.R.drawable.ic_menu_report_image);
}
问题是我想将位图大小调整为位图,但imageview总是显得平方。
位图的大小为:X: 4160 Y: 3120
,屏幕大小为:WIDTH= 1080 HEIGHT= 1776
我想放宽度填充父级并调整高度以保持宽高比。我尝试了一些xml替代品,比如`ScaleType。
有人知道正确放置位图的方法吗?
答案 0 :(得分:0)
答案 1 :(得分:0)
这是ImageView
,因此您需要使用android:src="@drawable/border"
代替android:background
。同时尝试android:scaleType="fitXY"
或cropCenter
。
答案 2 :(得分:0)
Android ImageView中有不同的比例类型
CENTER_INSIDE - 用于设置位图,保持位图原始宽高比。
CENTER_CROP - 用于在imageview中设置Bitmap以覆盖没有打破宽高比的imageview,而是将位图从负x,y值设置为覆盖imageview区域。
FIT_XY - 用于将整个位图设置为可用的ImageView高度和宽度意味着位图采用Imageviews Aspect Ratio。
OR
如果要调整位图大小,则选择要设置的高度或宽度,如果取下宽度,则取高度/宽度比例,如果有下一个高度,则将重复宽度和高度乘以此比率。将改变位图的高度和宽度,但保持原始位图的宽高比。