由於Android 螢幕型號太多種了,使用固定大小的imageview將無法適用其他螢幕大小.於是就會面臨這問題"如何自動調控Android imageview的大小?"

如下10吋螢幕可能還可以適用!!!

1217001.png

但是調為4吋螢幕就不能看了

 

1217002.png  

 

解決方式(想法):

1.計算螢幕大小

2.算出元件(imageview)需要的大小

3.調整元件的大小

 

程式碼:

1.計算螢幕大小

蝸牛有鎖定螢幕為橫向顯示(manifest.xml 中有這一行 android:screenOrientation="landscape")

XML:

 

<activity
android:name="tw.snailtw.xxx.MainActivity"
android:screenOrientation="landscape"
android:configChanges="keyboardHidden|orientation"
android:label="@string/app_name" >

 

 

JAVA:

 

DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
intScreenWidth = dm.widthPixels;   //螢幕的寬
intScreenHeight = dm.heightPixels;  //螢幕的高

 

 

2.算出元件(imageview)需要的大小

 

numberevenWidth=(int) ((intScreenHeight-20)/4); // 應為我的元件有三行加上保留位置多加一行 所以除4
numberevenHeight=numberevenWidth;

 

3.調整元件的大小

 

imgv0 = (ImageView) findViewById(R.id.imageView10);    //取得介面ID ,imgv0要先宣告TYPE

 

myimageviewsize(imgv0,numberevenWidth,numberevenWidth);   //調整元件大小 ,這時eclipse會出現錯誤,告知無此方法,按自動添加方法.

 

 

private void myimageviewsize(ImageView imgid, int evenWidth, int evenHight) {
// TODO 自動產生的方法 Stub
LayoutParams params = imgid.getLayoutParams();  //需import android.view.ViewGroup.LayoutParams;
params.width = evenWidth;
params.height = evenHight;
imgid.setLayoutParams(params);
}

 

 

當然還有很多方法可以實現,但是蝸牛覺得這方法比較直觀容易懂,因此特別記錄下來!

 

 

 

arrow
arrow
    創作者介紹
    創作者 台灣蝸牛 的頭像
    台灣蝸牛

    台灣蝸牛人生哲學

    台灣蝸牛 發表在 痞客邦 留言(0) 人氣()