2012-09-02 139 views
1

我正在動態創建線性佈局併爲其添加一些圖像視圖和文字查看。在動態線性佈局中設置Imageview的大小

代碼

ScrollView sv = new ScrollView(this); 

LinearLayout llay = new LinearLayout(this); 

for(int i =0;i<ns;i++){ 
    TextView tv = new TextView(this); 
    ImageView iv = new ImageView(this); 
    iv.setLayoutParams(new LinearLayout.LayoutParams(100,100,50)); 

    llay.addView(tv); 
    llay.addView(iv); 
} 

上運行的應用

第一設備:該imageviews是適當的尺寸。

第二個設備:圖片視圖太小。

有沒有什麼辦法,我可以通過設置imageview的明確大小來避開它,以便它變得獨立於設備?

回答

1

建議使用dp而不是px。

有關DP VS PX的更多信息,你可以訪問Support multiple screens

在你的情況,你設置的像素值。如果你想與DP工作,你可以使用以下命令:

float x = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 100, getResources().getDisplayMetrics()); 
+0

請你詳細說明一下,這怎麼適用於我的情況呢? –

+1

你現在的'100'是像素的,你應該用它提供的方法把它改成dp。 – Aprian

2

試試這個....

如果您的應用程序的差異大小密度利用顯示器的高度/寬度而非固定值。

Display display = getWindowManager().getDefaultDisplay(); 
     int height = display.getHeight()/10; 
     int width = display.getWidth()/5; 

ScrollView sv = new ScrollView(this); 

LinearLayout llay = new LinearLayout(this); 

for(int i =0;i<ns;i++){ 
    TextView tv = new TextView(this); 
    ImageView iv = new ImageView(this); 
    iv.setLayoutParams(new LinearLayout.LayoutParams(width,height,0)); 

    llay.addView(tv); 
    llay.addView(iv); 
} 
相關問題