2012-07-18 55 views
0

如何修復(防止它們移動)android中tablelayout中單元格的大小?如何修復Android中桌面佈局中單元格的大小android

我在每個單元格內都有一個帶有圖像按鈕的tablelayout,問題是,當我更改(或刪除)圖像時,按鈕的大小會發生變化。我如何防止這種情況?

回答

2

有物業setMinimum寬度/高度和最大寬度/高度,你可以使用以避免這種情況

<ImageButton 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:minWidth="100dp" 
    android:maxWidth="200dp" 
    android:minHeight="100dp" 
    android:maxHeight="200dp" 
    android:src="@drawable/ic_launcher" /> 

這一定會幫助您完成工作。

感謝

這可以幫助您與檢測不同的屏幕尺寸(小,medim,超大,啤酒)一起編程調整你的ImageButton

//Determine screen size 
    if ((getResources().getConfiguration().screenLayout &  Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_LARGE) {  
     Toast.makeText(this, "Large screen",Toast.LENGTH_LONG).show(); 

    } 
    else if ((getResources().getConfiguration().screenLayout &  Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_NORMAL) {  
     Toast.makeText(this, "Normal sized screen" , Toast.LENGTH_LONG).show(); 

    } 
    else if ((getResources().getConfiguration().screenLayout &  Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_SMALL) {  
     Toast.makeText(this, "Small sized screen" , Toast.LENGTH_LONG).show(); 
    } 
    else { 
     Toast.makeText(this, "Screen size is neither large, normal or small" , Toast.LENGTH_LONG).show(); 
    } 




    //Determine density 
    DisplayMetrics metrics = new DisplayMetrics(); 
     getWindowManager().getDefaultDisplay().getMetrics(metrics); 
     int density = metrics.densityDpi; 

     if (density==DisplayMetrics.DENSITY_HIGH) { 
      Toast.makeText(this, "DENSITY_HIGH... Density is " + String.valueOf(density), Toast.LENGTH_LONG).show(); 
     } 
     else if (density==DisplayMetrics.DENSITY_MEDIUM) { 
      Toast.makeText(this, "DENSITY_MEDIUM... Density is " + String.valueOf(density), Toast.LENGTH_LONG).show(); 
     } 
     else if (density==DisplayMetrics.DENSITY_LOW) { 
      Toast.makeText(this, "DENSITY_LOW... Density is " + String.valueOf(density), Toast.LENGTH_LONG).show(); 
     } 
     else { 
      Toast.makeText(this, "Density is neither HIGH, MEDIUM OR LOW. Density is " + String.valueOf(density), Toast.LENGTH_LONG).show(); 
     } 
+0

我寧願避免使用數字,因爲那樣的話它變得很難支持不同的屏幕尺寸 – jcw 2012-07-18 09:51:13

+0

我已編輯我的代碼,以提供不同屏幕分辨率的解決方案,這一定會幫助你。謝謝 – SALMAN 2012-07-18 09:55:53

+0

這樣做,我只需要等10分鐘才能接受答案 – jcw 2012-07-18 10:02:23