android根據屏幕寬度,按比例縮放圖片

ImageView有scaleType屬性能夠縮放圖片,讓圖片鋪滿屏幕寬度,可是會出現壓縮或裁剪的狀況。java

ImageView的scaleType的屬性分別是matrix(默認)、center、centerCrop、centerInside、fitCenter、fitEnd、fitStart、fitXYandroid

android:scaleType="center"app

保持原圖的大小,顯示在ImageView的中心。當原圖的size大於ImageView的size,超過部分裁剪處理。ide

android:scaleType="centerCrop"this

以填滿整個ImageView爲目的,將原圖的中心對準ImageView的中心,等比例放大原圖,直到填滿ImageView爲止(指的是ImageView的寬和高都要填滿),原圖超過ImageView的部分做裁剪處理。code

android:scaleType="centerInside"xml

以原圖徹底顯示爲目的,將圖片的內容完整居中顯示,經過按比例縮小原圖的size寬(高)等於或小於ImageView的寬(高)。若是原圖的size自己就小於ImageView的size,則原圖的size不做任何處理,居中顯示在ImageView。圖片

android:scaleType="matrix"ip

不改變原圖的大小,從ImageView的左上角開始繪製原圖,原圖超過ImageView的部分做裁剪處理。get

android:scaleType="fitCenter"

把原圖按比例擴大或縮小到ImageView的ImageView的高度,居中顯示

android:scaleType="fitEnd"

把原圖按比例擴大(縮小)到ImageView的高度,顯示在ImageView的下部分位置

android:scaleType="fitStart"

把原圖按比例擴大(縮小)到ImageView的高度,顯示在ImageView的上部分位置

android:scaleType="fitXY"

把原圖按照指定的大小在View中顯示,拉伸顯示圖片,不保持原比例,填滿ImageView.


實現圖片適應屏幕寬度方式:獲取屏幕大小,動態設置控件高度。實現代碼:

package com.penngo.image;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.util.Log;
import android.view.ViewGroup;
import android.widget.ImageView;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.b206_125);
        int bwidth = bitmap.getWidth();
        int bHeight = bitmap.getHeight();

        int width = Screen.getScreenWidth(this);
        Log.e("====", bwidth + " " + bHeight + " " + width);
        ImageView img5 = (ImageView)this.findViewById(R.id.img5);
        int height = width * bHeight / bwidth;
        ViewGroup.LayoutParams para = img5.getLayoutParams();
        para.height = height;
        img5.setLayoutParams(para);
    }
}
<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"
    android:layout_margin="5dip"
    tools:context=".MainActivity">

    <ImageView
        android:id="@+id/img4"
        android:src="@drawable/b206_125"
        android:scaleType="fitXY"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
    <View
        android:id="@+id/view"
        android:layout_marginTop="5dp"
        android:layout_marginBottom="5dp"
        android:layout_below="@+id/img4"
        android:layout_width="match_parent"
        android:layout_height="1dip"
        android:background="#c3c3c3"
        android:visibility="visible" />
    <ImageView
        android:id="@+id/img5"
        android:src="@drawable/b206_125"
        android:layout_below="@+id/view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
    <View
        android:id="@+id/view1"
        android:layout_marginTop="5dp"
        android:layout_marginBottom="5dp"
        android:layout_below="@+id/img5"
        android:layout_width="match_parent"
        android:layout_height="1dip"
        android:background="#c3c3c3"
        android:visibility="visible" />

    <ImageView
        android:id="@+id/img6"
        android:src="@drawable/b206_125"
        android:scaleType="centerCrop"
        android:layout_below="@+id/view1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />


</RelativeLayout>

相關文章
相關標籤/搜索