2013-04-17 27 views
1

我在main.xml如何在ListView中更改文本的大小?

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout 
xmlns:android  = "http://schemas.android.com/apk/res/android" 
android:orientation = "vertical" 
android:layout_width = "fill_parent" 
android:layout_height= "fill_parent" > 

    <ListView 
    android:id     = "@android:id/list" 
    android:textSize   = "4sp" 
    android:layout_width  = "fill_parent" 
    android:layout_height  = "fill_parent" 
    android:drawSelectorOnTop = "false" /> 

</LinearLayout> 

ViewHolder.java

public class ViewHolder { 
    ImageView icon = null; 

    ViewHolder(View base){ 
     this.icon = (ImageView)base.findViewById(R.id.pic); 
    } 
} 

ViewHolderDemo.java

public class ViewHolderDemo extends ListActivity { 
    private static final String[] items = {"lorem", "ipsum", "dolor", "sit", "amet","consectetuer", "adipiscing", "elit"}; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     setListAdapter(new IconicAdapter()); 
    } 

    public void OnListItemClick(ListView parent, View v, int position, long id){ 
    } 

    class IconicAdapter extends ArrayAdapter<String> { 

     public IconicAdapter() { 
      super(ViewHolderDemo.this, R.layout.row, R.id.label, items); 
     } 

     public View getView(int position, View convertView, ViewGroup parent){ 
      View row = super.getView(position, convertView, parent); 
      ViewHolder holder = (ViewHolder)row.getTag(); 

      if(holder == null){   
       holder = new ViewHolder(row); 
       row.setTag(holder); 

      } 
      holder.icon.setImageResource(R.drawable.star); 
      return(row); 
     }  
    } 
} 

的問題,我累了是寫aplication爲Android 2.3

:當我在.xml中更改android:textSize。文本大小不變
可能是這是一個bug在Android
enter image description here
所以如何我可以chage大小的文字(使小)存在於ListView?

回答

2
android:textSize = "4sp" 

安卓TEXTSIZE是一個TextView屬性,而不是ListView控件。

您可以通過在應用程序主題中設置textSize來覆蓋默認的textSize。 更好的辦法是要麼:

  1. 將其設置在代碼中(到TextView的參考和使用setTextSize)
  2. 與Android充氣自己的行佈局:TEXTSIZE =「4SP」爲TextView的

爲什麼這比在應用主題中設置好呢? 由於textSize屬性將由TextView擴展的所有小部件共享。所以像Button或EditText這樣的東西也會有這樣的大小(當然,假設這不是預期的效果)。

+0

+1這是更好的建議。我錯過了他爲listview設置了屬性。 – Raghunandan

1

您可以使用自定義行XML和BaseAdapter來完成此操作。不知道是否有更簡單的方法,但我知道這是有效的。

1
private static final String[] items = {"lorem", "ipsum", "dolor", "sit", "amet","consectetuer", "adipiscing", "elit"} 

我假設你正在使用imageview和textview給自定義佈局充氣。

在你getView()

SpannableString ss2= new SpannableString(items[position]); 
ss2.setSpan(new RelativeSizeSpan(2f), 0, ss2.length(), 0); //change the size 
viewHolder.tv.setText(ss2); //set spannable string to your text 
相關問題