由於Android 螢幕型號太多種了,使用固定大小的imageview將無法適用其他螢幕大小.於是就會面臨這問題"如何自動調控Android imageview的大小?"
如下10吋螢幕可能還可以適用!!!
但是調為4吋螢幕就不能看了
解決方式(想法):
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);
}
當然還有很多方法可以實現,但是蝸牛覺得這方法比較直觀容易懂,因此特別記錄下來!
留言列表