簡體   English   中英

我如何在ListView中更改文本大小?

[英]How i can change size of text in ListView?

我正在為android 2.3編寫應用程序

main.xml

<?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);
        }       
    }
}

厭倦了我的問題是:當我在.xml更改android:textSize時。 文字大小不變
可能這是android中的一個錯誤
在此輸入圖像描述
那么我怎樣才能在ListView中存在大小的文本(make small)?

android:textSize = "4sp"

android:textSize是一個TextView屬性,不適用於ListView。

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

  1. 在代碼中設置它(獲取對TextView的引用並使用setTextSize)
  2. 使用android:textSize =“4sp”為TextView擴展自己的行布局

為什么這比在應用主題中設置更好? 由於textSize屬性將由從TextView擴展的所有窗口小部件共享。 所以像Button或EditText這樣的東西也會有這樣的大小(當然假設這不是理想的效果)。

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

  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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM