我尝试拍摄适合整个屏幕尺寸的图像。我的活动布局XML如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="${relativePackage}.${activityClass}" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="match_parent"
android:layout_height="match_parent" />
我的代码显示图片:
private void showImage(String imageName){
String directory = "/sdcard/DCIM/cat/" + imageName;
File imageFile = new File(directory);
if(imageFile.exists()){
Bitmap imageBitmap = BitmapFactory.decodeFile(imageFile.getAbsolutePath());
//rotating the bitmap by 90 degree clockwise. Assume the bitmap is 270 degree clockwise.
Matrix mtx = new Matrix();
mtx.preRotate(90);
int w = imageBitmap.getWidth();
int h = imageBitmap.getHeight();
imageBitmap = Bitmap.createBitmap(imageBitmap,0,0,w,h,mtx,false);
imageBitmap = imageBitmap.copy(Bitmap.Config.ARGB_8888,true);
ImageView imageView = (ImageView)findViewById(R.id.imageView1);
imageView.setImageBitmap(imageBitmap);
}
scree上的输出如下:
正如大家可能观察到的那样,图像的左侧和右侧都有空白区域。有什么方法可以使图像完美地适合屏幕?
答案 0 :(得分:3)
使用android:scaleType属性填充图片:
android:scaleType="fitXY"
或
imageView.setScaleType(ImageView.ScaleType.FIT_XY)
答案 1 :(得分:2)
将android:scaleType="centerCrop"
添加到<ImageView>
声明中。它将填满整个空间并切断额外的部分。
答案 2 :(得分:1)
使用setScaleType属性,您可以执行此操作。
类似的东西:
imgView.setScaleType(ImageView.ScaleType.FIT_CENTER); // OR FIT_XY
答案 3 :(得分:1)
使用
android:scaleType = "fitCenter" //This will preserve the aspect ratio of image
或
android:scaleType="fitXY" //This won't preserve the aspect ratio of image