如何使用xml在android中设置Listview项目中的文本大小?

时间:2013-10-07 11:37:57

标签: android

是否可以设置或更改listview中项目的文字大小

如果有可能解释可能性。

4 个答案:

答案 0 :(得分:0)

  

是否可以在listview中设置或更改项目的文本大小

是的,这是可能的。只需为ListView的行项目创建自己的自定义xml,并为ListView设置自定义适配器。 在那个XML中指定你的文字大小。

答案 1 :(得分:0)

如果您通过扩展BaseAdapter来使用自己的适配器,则可以使用自己的xml文件对每行进行充气,并且可以设置文本大小或字体等

答案 2 :(得分:0)

当然可以。

如果您使用自己的自定义行,则必须在xml中编写该布局。您可以使用

设置文本大小
android:textSize="XXsp"  

或者,您可以从代码中动态地执行此操作,在适用于listview的Adapter类中,您必须覆盖getView方法。在该方法中,您首先要为该行的布局充气。然后你可以这样编码......

TextView textview = (TextView)view.findViewbyId(R.id.textview);
textview.setTextSize(18.0f);

希望它有所帮助。

答案 3 :(得分:0)

<强> list_screen_layout.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<ListView
    android:id="@+id/listScreen"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true" >
</ListView>

ListScreen活动

    public class ListSreen extends FragmentActivity {
    private ListView list;
    private String[] strData = new String[('Z' - 'A') + 1];;
    private TestAdapter adapterData;
    private int i = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        try {
            setContentView(R.layout.list_screen_layout);
            list = (ListView) findViewById(R.id.listScreen);
            for (char c = 'A'; c <= 'Z'; c++) {
                strData[i++] = String.valueOf(c);
            }
            adapterData = new TestAdapter(strData, this);
            list.setAdapter(adapterData);

        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}

<强> TestAdapter

    public class TestAdapter extends BaseAdapter {
    private int size = 0;

    public TestAdapter(String[] strData, Context cntx) {
        this.strData = strData;
        this.cntx = cntx;
        if (this.strData != null)
            size = this.strData.length;
    }

    String[] strData;
    private Context cntx;

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return size;
    }

    @Override
    public String getItem(int position) {
        // TODO Auto-generated method stub
        return this.strData[position];
    }

    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return position;
    }

    class Holder {
        TextView lbl;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        Holder holder;
        if (convertView == null) {
            holder = new Holder();
            convertView = LayoutInflater.from(cntx).inflate(
                    R.layout.list_row_item, null);
            holder.lbl = (TextView) convertView.findViewById(R.id.lbl_text);
            convertView.setTag(holder);
        } else {
            holder = (Holder) convertView.getTag();
        }
        /*
         * textview style and all here can also b add here
         */
        holder.lbl.setText(this.strData[position]);

        return convertView;
    }

}