首页 > 其他分享 >Android设置spinner字体

Android设置spinner字体

时间:2023-10-10 15:34:38浏览次数:27  
标签:Spinner 自定义 适配器 spinner 字体 Android 文本 android

弹出下拉菜单可以直接设置,但是显示字体需要使用自定义适配器来生效
你尝试在 Spinner 上应用了自定义的样式,但似乎字体大小未更改。在 Spinner 控件中更改字体大小可能需要使用自定义适配器来生效。尽管你在样式 setting_spinner 中设置了 android:textSize,但这只会影响下拉列表中的文本大小,而不会影响 Spinner 自身的文本大小。

为了更改 Spinner 控件的文本大小,你可以尝试以下方法:

  1. 创建一个自定义适配器并在适配器中设置文本大小。

  2. CustomSpinnerAdapter 中,在 getView 方法中设置 TextView 的文本大小。以下是示例代码:

public class CustomSpinnerAdapter extends ArrayAdapter<String> {

    public CustomSpinnerAdapter(Context context, List<String> items) {
        super(context, R.layout.custom_spinner_item, items);
        setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    }

    @NonNull
    @Override
    public View getView(int position, View convertView, @NonNull ViewGroup parent) {
        View view = super.getView(position, convertView, parent);
        TextView textView = view.findViewById(android.R.id.text1);
        textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 24); // 设置字体大小
        return view;
    }
}

然后,使用这个自定义适配器来初始化你的 Spinner

List<String> items = new ArrayList<>();
// 添加选项到 items 列表
CustomSpinnerAdapter adapter = new CustomSpinnerAdapter(this, items);
Spinner firstSpinner = findViewById(R.id.firstSpinner);
firstSpinner.setAdapter(adapter);

这样,你应该能够更改 Spinner 控件中文本的大小。请确保在适配器中设置字体大小,并且 android:theme 中的 setting_spinner 样式不再需要。

在你的 XML 布局中,你已经为 Spinner 设置了自定义主题样式 android:theme="@style/setting_spinner",但是你的自定义主题样式 setting_spinner 是基于 @android:style/Widget.TextView.SpinnerItem 进行定义的,该样式可能不会影响 Spinner 中的文本大小。

要更改 Spinner 中文本的大小,你需要自定义 Spinner 中的文本视图。你可以创建一个自定义的布局文件,例如 custom_spinner_item.xml,并在其中定义你想要的文本样式。然后,在你的自定义适配器中,将这个布局应用到每个 Spinner 选项上。

以下是修改 Spinner 字体大小的步骤:

  1. 创建一个自定义布局资源文件,例如 custom_spinner_item.xml,用于定义 Spinner 中每个选项的样式:
<!-- custom_spinner_item.xml -->
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    style="?android:attr/spinnerItemStyle"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textSize="24sp" <!-- 设置字体大小为 24sp -->
    android:textColor="@color/your_text_color" <!-- 设置文本颜色 -->
    android:padding="8dp" <!-- 可选的内边距 -->
/>

在上面的布局文件中,你可以更改 android:textSize 属性来定义文本的大小,并根据需要更改其他样式属性。

  1. 在你的 Java 代码中,创建一个自定义适配器,并将自定义的布局资源文件应用到每个 Spinner 选项上。确保设置适配器的 DropDownViewResource,以确保下拉列表项使用相同的自定义样式:
List<String> items = new ArrayList<>();
// 添加选项到 items 列表
CustomSpinnerAdapter adapter = new CustomSpinnerAdapter(this, items);
adapter.setDropDownViewResource(R.layout.custom_spinner_item); // 设置下拉项样式
Spinner firstSpinner = findViewById(R.id.firstSpinner);
firstSpinner.setAdapter(adapter);

在上述代码中,R.layout.custom_spinner_item 引用了你创建的自定义布局文件。

现在,你应该能够在 Spinner 中看到修改后的文本大小。

如果你仍然遇到问题,请确保你的 custom_spinner_item.xml 文件正确,并且没有其他样式或主题覆盖了你的设置。

标签:Spinner,自定义,适配器,spinner,字体,Android,文本,android
From: https://www.cnblogs.com/zhaogaojian/p/Android.html

相关文章

  • app直播源代码,android中几种常用的弹框
    app直播源代码,android中几种常用的弹框一、SweetAlertDialog弹框使用该控件需要添加依赖: implementation'com.github.f0ris.sweetalert:library:1.5.1'​下面是具体用法:  newSweetAlertDialog(this,SweetAlertDialog.WARNING_TYPE)        .setTitl......
  • Android Activity的玩法
    TODO基本的使用IntentTODO基础的使用方法Intent传输数据//添加Intentintent=newIntent(activity,TargetActivity.class);intent.putExtra(Stringname,Objectdata);startActivity(intent)//使用intent=getIntent()intent.getExtra(Stringkey).var;Acti......
  • word自动生成目录和调整页码字体的方法
    一、word自动生成目录标题样式“,首先添加”一级标题“(也可以直接在段落中设置)。   按添加一级标题的方法添加”二级标题“、三级标题等。   按照上面的方法把各级标题添加好,下面就开始自动生成目录。”引用“→”Word左上角“目录”。二、调整页码字体参考:https://wenk......
  • MPAndroidChart 中的HorizontalBarChart数值显示不全问题
    privateHorizontalBarCharthor_bar_chart;hor_bar_chart=(HorizontalBarChart)findViewById(R.id.hor_barchart);YAxisleftYAxis=hor_bar_chart.getAxisLeft();//设置y轴边距,解决数值过大显示不全问题leftYAxis.setSpaceTop(25f);privateHorizontalBarCharthor_bar_c......
  • android 代码禁用某个应用的方法
    注意需要android.uid.system权限设置包可用+PackageManagerpm=getPackageManager();+pm.setApplicationEnabledSetting(this.getPackageName(),PackageManager.COMPONENT_ENABLED_STATE_DEFAULT,0);设置包不可用+pm.setApplicationEnabledSettin......
  • css字体样式
     1.font-style设置字体样式属性值:  normal:指定⽂本字体样式为正常的字体  italic:指定⽂本字体样式为斜体。2.文字字体font-family只能引用系统自带的字体样式,如果需要其他别的字体,需要从外部下载调用引用外部字体  网站:https://font.chinaz.com/katongziti.......
  • Android 定时器简单使用及学习
    本文,介绍常用定时器实现方式:1)Handler+Sleep方式2)Handler+PostDelayed方式3)Handler+Timer方式Handler的主要作用就是用来处理接收到的信息,用Handler消息传递机制是为了多个线程并发更新U的同时,保证线程安全1)Handler+Sleep方式1.1)Handler+Sleep定义publicclassHandlerAn......
  • chrome浏览器显示网页字体不正常,需要放大150% 显示正常
    软件环境:windows764位、chrome109.0.5414.120。故障现象:chrome浏览器,浏览百度、淘宝等网站总是需要把显示分辩率放大150%,然后显示正常。解决方案:下载windows7 kb2670838补丁安装后,重启电脑,打开chrome浏览器浏览网页显示正常。 ......
  • android: 通过Intent筛选多种类型文件
     一般使用setType()方法来实现文件过滤,如:只显示PDF文件:intrequestCode=100;Intentintent=newIntent(Intent.ACTION_GET_CONTENT);intent.setType("application/pdf");intent.addCategory(Intent.CATEGORY_OPENABLE);startActivityFor......
  • css中的字体样式
    一.字体的样式font-style:"normal"正常font-style:"italic"斜体 二.字体的粗细font-weight:"bold/bolder";bold是粗体 font-weight:400;400,500为正常500<为粗体>400为细体 三.字体的家庭font-family可以自己外部引入字体 四.行高line-height:200px 使文......