如何使图像适合整个屏幕在Android?

时间:2014-11-29 13:48:32

标签: android image layout

我尝试拍摄适合整个屏幕尺寸的图像。我的活动布局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上的输出如下:  Screen capture of the activity

正如大家可能观察到的那样,图像的左侧和右侧都有空白区域。有什么方法可以使图像完美地适合屏幕?

4 个答案:

答案 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