Android ListView 如何 更改字体颜色,字体类型等参数

Android 默认的ListView 控件是不支持更改字体颜色,或是字体Style。


如果想实现这个功能,需要自己编写一些代码


步骤1:

定义一个ListView item的资源xml,将其放入res/layout/ 目录下,比如list_item1.xml,内容为:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/text1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textColor="#0000ff"

   android:testStyle="italic"
    android:gravity="center_vertical"
    android:paddingLeft="6dip"
    android:minHeight="?android:attr/listPreferredItemHeight"
/>

以上定义文字为蓝色,且斜体显示


步骤2:
改一下程序:
nameAdapter = new ArrayAdapter<String>(this, R.layout.list_item1,nameList);


主要参考Android源代码frameworks\base\core\res\res\layout\下的xml

文件,有时间你可以看看,可以学习到很多有用的东西


以上方法实现静态的更改,但是不能动态的更改。



第二个问题:

  如何实现动态的改变,动态的改变需要实现Adapter

private String strArr[] = {"深圳","北京","上海","杭州","南京","广州"};


MyListView.setAdapter(new MyAdapter());


private class MyAdapter extends BaseAdapter
{         
       @Override  
        public int getCount() 
        {  
                return strArr.length;
        }  


        @Override  
        public Object getItem(int arg0) {  
            return arg0;  
        }  


        @Override  
        public long getItemId(int position) {  
            return position;  
        }  


        @Override  
        public View getView(int position, View convertView, ViewGroup parent) {  
            // position就是位置从0开始,convertView是Spinner,ListView中每一项要显示的view  
            // 通常return 的view也就是convertView  
            // parent就是父窗体了,也就是Spinner,ListView,GridView了.
            TextView mTextView = new TextView(getApplicationContext()); 
            mTextView.setText(strArr[position]);
            mTextView.setTextSize(15);
            return mTextView;  

   /* //或者使用类似下面的代码...

                        if (convertView == null) {
                                convertView = mLayoutInflater.inflate(R.layout.item1, parent, false);
                        }
                        mView = (TextView) convertView.findViewById(R.id.text1);
                        mView.setText(...);
                        mView.setTextColor(...);
                        return convertView;

*/
        }  
}


其实对于Spinner,ListView需要适配器编程的都可以通过这样的方法达到自画的想要的效果






  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 在Android Studio中,可以通过AlertDialog的setMultiChoiceItems方法来创建一个包含多个选项的对话框。 但是,AlertDialog的setMultiChoiceItems方法并不能直接设置字体大小。可是,我们可以通过自定义布局来设置字体大小。 首先,在res文件夹下创建一个新的布局文件,例如"custom_dialog.xml",然后在这个布局文件中添加一个ListView组件,并设置ListView的元素的字体大小。 接下来,在Java代码中使用AlertDialog的setView方法来设置对话框的自定义布局,如下所示: ``` LayoutInflater inflater = getLayoutInflater(); View customView = inflater.inflate(R.layout.custom_dialog, null); AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setView(customView); AlertDialog dialog = builder.create(); dialog.show(); ``` 这样就可以通过自定义布局来设置AlertDialog的字体大小了。在自定义布局中,你可以使用各种UI组件,并根据需要设置字体大小。 需要注意的是,对话框的字体大小设置应该与应用的整体风格和设计风格保持一致,遵循用户界面设计的原则和规范,以提供良好的用户体验。 ### 回答2: 在Android Studio中,AlertDialog的setMultiChoiceItems方法用于设置多选对话框的选项列表。但是,setMultiChoiceItems方法本身并不提供直接修字体大小的选项。如果想要变多选对话框选项的字体大小,可以通过自定义布局的方式来实现。 首先,需要创建一个自定义的布局文件,例如"my_dialog_layout.xml"。在该布局文件中,可以使用TextView或者其他适合的视图来展示多选对话框的选项,并设置合适的字体大小。 接下来,在代码中使用AlertDialog的setView方法来设置自定义布局文件。具体代码如下: ``` AlertDialog.Builder builder = new AlertDialog.Builder(context); LayoutInflater inflater = LayoutInflater.from(context); View dialogView = inflater.inflate(R.layout.my_dialog_layout, null); builder.setView(dialogView); ``` 然后,可以使用setMultiChoiceItems方法来设置多选对话框的选项列表,并传入需要显示的选项数据: ``` builder.setMultiChoiceItems(items, checkedItems, new DialogInterface.OnMultiChoiceClickListener() { @Override public void onClick(DialogInterface dialog, int which, boolean isChecked) { // 处理选项的点击事件 } }); ``` 最后,调用builder的create方法创建对话框,并可以通过调用show方法来显示对话框: ``` AlertDialog dialog = builder.create(); dialog.show(); ``` 通过自定义布局的方式,我们可以自由地控制多选对话框选项的字体大小,以满足个性化的需求。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值