2010-03-30 58 views
0

其實我的代碼是:setwidth動態的TextView

LinearLayout ll = new LinearLayout(this); 

    ll.setId(i); 
    ll.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT)); 
    ll.setPadding(0, 0, 0, 5); 
    //ll.setClickable(false); 

    TextView tv = new TextView(this);     
    tv.setWidth(5); 
    tv.setId(++i); 
    tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); 

    final TextView name = new TextView(this); 
    name.setText(user_chat.get(j).toString()); 

    name.setWidth(60); 
    name.setId(++i); 
    //name.setClickable(false); 
    name.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); 

    Log.v("TextView name",""+name.getText()); 

    TextView msg = new TextView(this); 
    msg.setText(user_chat.get(++j).toString());     
    msg.setWidth(100); 
    msg.setId(++i); 
    //msg.setClickable(false);   
    msg.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); 

    TextView time= new TextView(this); 
    time.setText(user_chat.get(++j).toString());  
    time.setId(++i); 
    //time.setClickable(false);   
    time.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); 

    ll.addView(tv); 
    ll.addView(name); 
    ll.addView(msg); 
    ll.addView(time);     
    lay.addView(ll); 

在這個名字,味精,時間文本字段我想displyed.I名味精和時間以正確的順序我的意思是相同的線。但寬度不適用於android和droid。我可以做什麼?在此先感謝

回答

0

我想通過「調整到機器人和Android」你的意思是「適應大屏幕的Android設備,如摩托羅拉Droid,以及早期的正常屏幕的Android設備,如英雄或G1「。

我強烈建議你閱讀這篇文章,關於屏幕尺寸如何在Android不同的工作和設備無關的像素的概念(DIP封裝):

http://developer.android.com/guide/practices/screens_support.html

在你的情況,我相信你所尋求的信息可在章節下找到3.不要在代碼中使用硬編碼的像素值..從DIP轉換爲像素。

0

爲什麼在設置佈局參數時不使用第三個參數? 構造這個是這樣的......

public LinearLayout.LayoutParams (int width, int height, float weight); 

如:

ll.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT,1.0f)); 

您可以設置第三個參數爲1.0