在Android中,我定义了一个ImageView的layout_width为fill_parent(它占用了手机的全宽度)。
如果我放入ImageView的图像大于layout_width, Android会缩放?那么高度呢?当Android缩放图像时,它会保持纵横比吗?
我发现在ImageView的顶部和底部有一些空白当Android缩放一个比ImageView大的图像时。这是真的吗?如果是,我如何消除空白?
在Android中,我定义了一个ImageView的layout_width为fill_parent(它占用了手机的全宽度)。
如果我放入ImageView的图像大于layout_width, Android会缩放?那么高度呢?当Android缩放图像时,它会保持纵横比吗?
我发现在ImageView的顶部和底部有一些空白当Android缩放一个比ImageView大的图像时。这是真的吗?如果是,我如何消除空白?
当前回答
当以编程方式执行此操作时,请确保以正确的顺序调用setter:
imageView.setAdjustViewBounds(true)
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP)
其他回答
传递你的ImageView,根据屏幕的高度和宽度,你可以做出它
public void setScaleImage(EventAssetValueListenerView view){
// Get the ImageView and its bitmap
Drawable drawing = view.getDrawable();
Bitmap bitmap = ((BitmapDrawable)drawing).getBitmap();
// Get current dimensions
int width = bitmap.getWidth();
int height = bitmap.getHeight();
float xScale = ((float) 4) / width;
float yScale = ((float) 4) / height;
float scale = (xScale <= yScale) ? xScale : yScale;
Matrix matrix = new Matrix();
matrix.postScale(scale, scale);
Bitmap scaledBitmap = Bitmap.createBitmap(bitmap, 0, 0, width, height, matrix, true);
BitmapDrawable result = new BitmapDrawable(scaledBitmap);
width = scaledBitmap.getWidth();
height = scaledBitmap.getHeight();
view.setImageDrawable(result);
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) view.getLayoutParams();
params.width = width;
params.height = height;
view.setLayoutParams(params);
}
对于你们中的任何人,想要图像精确地适应imageview适当缩放,不裁剪使用
imageView.setScaleType(ScaleType.FIT_XY);
imageView是代表你的imageView的视图
imageView.setImageBitmap(Bitmap.createScaledBitmap(bitmap, 130, 110, false));
如果图像质量在以下情况下下降: 使用
android:adjustViewBounds="true"
而不是
android:adjustViewBounds="true"
android:scaleType="fitXY"
我的图像比屏幕小。为了让它按比例拉伸到最大,并在视图中居中,我必须使用以下代码:
<ImageView
android:id="@+id/my_image"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerInParent="true"
android:adjustViewBounds="true"
android:layout_weight="1"
android:scaleType="fitCenter" />
记住,如果你有一个相对布局,有一些元素被设置在ImageView的上方或下方,它们很可能会被图像重叠。