Android Studio开发之路(八)Spinner样式设置

这篇具有很好参考价值的文章主要介绍了Android Studio开发之路(八)Spinner样式设置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、需求

白色背景+显示下拉框按钮
Android Studio开发之路(八)Spinner样式设置,Android Studio开发之路,android studio,python,android
问题:
设置Spinner的背景可以通过设置background: android:background="@color/white",但是一旦设置了这个值,右侧的下拉按钮就会消失

方法一、自定义一个style(不成功)

在drawable中添加一个spinner_style.xml,并添加以下内容,然后在布局文件中的Spinner中添加Style

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <solid android:color="#FFFFFF"/> <!-- 白色背景 -->
        </shape>
    </item>
    <item android:top="-2dp" android:right="-2dp" android:bottom="-2dp">
        <bitmap android:src="@drawable/ic_dropdown" android:gravity="right|center_vertical"/> <!-- 下拉箭头 -->
    </item>
</layer-list>
<Spinner
            android:id="@+id/spinner_phone"
            android:layout_width="254dp"
            android:layout_height="30dp"
            android:entries="@array/phone"
            style="@drawable/spinner_style"
            android:spinnerMode="dropdown"/>

这里@drawable/ic_dropdown是一个下拉按钮图标,可以用自己现成的,也可以通过android image asset生成一个图标。下面是android image asset使用方法:

drawable右键->new->image asset进入下图页面,按照顺序操作,就会将下拉箭头图标保存到drawable中了。

Android Studio开发之路(八)Spinner样式设置,Android Studio开发之路,android studio,python,android

但是! 这个在我这里不成功,它只显示了图标,背景没有变色

方法二、文字设置、各部分颜色设置 (不成功)

先在values->colors.xml中添加以下三个颜色:spinner_background_color、dropdown_item_selector_color、dropdown_background_color分别代表控件背景颜色、选中的项目颜色、下拉控件背景颜色

Android Studio开发之路(八)Spinner样式设置,Android Studio开发之路,android studio,python,android

然后在styles.xml中添加上这三个颜色:

 <style name="spinnerColor" parent="Widget.AppCompat.Spinner">
        <item name="android:background">@color/spinner_background_color</item>
        <item name="android:dropDownSelector">@color/dropdown_item_selector_color</item>
        <item name="android:popupBackground">@color/dropdown_background_color</item>
        <item name="android:spinnerStyle">@style/Widget.AppCompat.Spinner.Underlined</item>
    </style>

然后在布局文件的Spinner的style指向它:style="@style/spinnerColor"

至于Spinner文字的设置如下:
在layout中添加一个spinner_item.xml文件,加入以下代码作为文字设置:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="12sp"
android:textStyle="normal"
android:textColor="@color/black"
 />

然后在java文件中,:

Spinner m_phoneSpinner=(Spinner)findViewById(R.id.spinner_phone);
 ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
               R.array.phone, R.layout.spinner_item);
        m_phoneSpinner.setAdapter(adapter);

这里R.array.phone是下拉框各项条目,记录在strings.xml中:

<resources>
    <string name="app_name">MarkCollectionTool</string>

    <string-array name="phone">
        <item>HUAWEI-Mate60</item>
        <item>HUAWEI-Mate60pro</item>
        <item>HUAWEI-P60</item>
        <item>XIAOMI-14Ultra</item>
        <item>OPPO-FIND-N3-FLIP</item>
        <item>VIVO-X-FLOD3</item>
    </string-array>

</resources>

以上都添加了,但是依然没有改变背景颜色变化后下拉按钮消失的情况。

方法三、Spinner+imageView组合 (成功!)

直接进行Spinner的样式修改总是背景和下拉按钮不能共存,于是决定修改背景后在Spinner的上面叠加一个下拉图标,图标我就用的方法一中提到的image asset制作的图标。

<RelativeLayout
            android:layout_width="250dp"
            android:layout_height="wrap_content">

            <Spinner
                android:id="@+id/spinner_phone"
                android:layout_width="250dp"
                android:layout_height="40dp"
                android:background="@color/white"
                android:layout_centerInParent="true"

                android:entries="@array/phone">

            </Spinner>

            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/ic_spinner"
                android:background="@color/white"
                android:layout_alignParentRight="true"
                android:layout_alignTop="@id/spinner_phone"
                android:layout_centerVertical="true"/>

        </RelativeLayout>

如上述代码,将spinner和imageView用Relativelayout布局组装起来,将Relativelayout的宽度设置的与spinner宽度一样,这样的话在给imageView设置layout_alignParentRight和layout_alignTop就正好可以让imageview显示在spinner空间的上方靠右的位置。

Android Studio开发之路(八)Spinner样式设置,Android Studio开发之路,android studio,python,android文章来源地址https://www.toymoban.com/news/detail-860558.html

到了这里,关于Android Studio开发之路(八)Spinner样式设置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android应用开发入门:从Android Studio环境设置到Java编程基础

    目录 介绍 步骤一:设置Android Studio环境 步骤二:了解Android Studio界面

    2024年02月13日
    浏览(47)
  • Android Studio开发环境搭建及本地Gradle设置方法

    Android Studio开发环境搭建及本地Gradle设置方法 在进行Android应用程序开发时,Android Studio是一款非常强大的集成开发环境(IDE)。它提供了丰富的工具和功能,帮助开发者轻松创建、测试和调试Android应用程序。本文将详细介绍如何搭建Android Studio开发环境,并配置本地Gradle设置

    2024年02月07日
    浏览(51)
  • 【Android Studio程序开发】文本显示 -- 设置文本的颜色

    除了设置文字大小,文字颜色也经常需要修改,毕竟Android默认的灰色文字不够醒目。在Java代码中调 用setTextColor方法即可设置文本颜色,具体在Color类中定义了12种颜色,详细的取值说明见下表 比如以下代码便将文本视图的文字颜色改成了绿色: ( 完整代码见下文) 可是X

    2023年04月10日
    浏览(47)
  • Android Studio开发环境搭建及设置本地Gradle方法

    Android Studio开发环境搭建及设置本地Gradle方法 在Android应用程序开发中,Android Studio是一款非常受欢迎的集成开发环境(IDE)。本文将详细介绍如何搭建Android Studio开发环境,并设置本地Gradle方法。同时,我们也会提供相应的源代码示例。 下载和安装Android Studio 首先,我们需要

    2024年01月19日
    浏览(51)
  • Android Studio xml文件代码自动提示失效/Android Studio 代码不自动提示/怎样设置才能不手动敲Android Studio 代码

    下图为我成功解决Android不自动提示代码之后的样子(这个过程耗时两天,把相关博客都看了一遍,尝试了各种各样的方法都没有解决。但是用这个方法的话几分钟就解决掉了) 我的电脑一直都是很奇怪的状态,因为用别的软件也总是会出现各种bug,但解决这个问题找到合适

    2024年02月03日
    浏览(57)
  • Android Studio设置

    一、主题 1.下载插件并重启 Material Theme UI 2.下载插件 ChroMATERIAL 3.设置主题 File Settings Editor Colors Scheme Scheme ChroMATERIAL 4.设置logcat色值 File → Settings → Editor → Colors Scheme → Android Logcat 二、常用设置 (1)文件 1.Local History 查看历史代码修改 2.Setting 设置 3.Project Structure 项目结构

    2024年02月10日
    浏览(40)
  • Android Studio网络设置

    Android Studio网络设置 1、安装后,内部的模拟器需要按照上述文档改成中文, 2、修改网络连接上外部网络 首先修改 1)mac的网络配置改为仅本地连接 2)修改mac中的网络DNS,添加 8.8.8.8 114.114.114.114 10.0.2.3 1.1.1.1 3) 修改模拟器中的自动连接选择3G那个,不选择auto*的一个wifi, 然后修

    2024年02月17日
    浏览(46)
  • Android studio 设置安卓手机

    参考这个链接 ghttps://developer.android.com/studio/debug/dev-options 列出常用手机的设置,但是我的手机不在此列 Google Pixel Settings    About phone    Build number Samsung Galaxy S8 and later Settings    About phone    Software information    Build number LG G6 and later Settings    About phone    Software info    Bui

    2024年02月13日
    浏览(38)
  • Android Studio代理设置教程

    Android Studio代理设置教程 在开发Android应用程序时,我们经常需要使用Android Studio来编写、调试和构建我们的代码。然而,有时候我们的开发环境可能位于一个受限制的网络中,需要通过代理服务器进行访问。本文将介绍如何在Android Studio中设置代理。 一、打开Android Studio并进

    2024年02月08日
    浏览(45)
  • android studio设置国内镜像

    Android Studio 4.1 Build #AI-201.8743.12.41.6858069, built on September 23, 2020 Runtime version: 1.8.0_242-release-1644-b01 amd64 gradlewrappergradle-wrapper.properties distributionUrl=https://mirrors.cloud.tencent.com/gradle/gradle-5.4.1-bin.zip 目的:通过腾讯镜像系在gradle 02.build.gradle buildscript {     repositories { //增加阿里云路

    2024年01月21日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包