android - 如何在微调器周围创建自定义微调器,如右侧向下三角形的边框?

标签 android android-layout

我想开发自定义微调器,例如在右下角带有三角形的微调器周围的线。
如下图

enter image description here

对于上面的图,我写了我的自定义微调器,就像一个

spinner.xml

 <Spinner android:background="@drawable/spinner_background"/>

spinner_background.xml

<?xml version="1.0" encoding="UTF-8"?>

<item android:state_pressed="true"
      android:drawable="@drawable/spinner_ab_pressed_new_theme_bs">
    <shape>

        <solid 
            android:color="@color/White" />

        <corners android:radius="3dp" />

        <padding 
            android:bottom="10dp" 
            android:left="10dp" 
            android:right="10dp" 
            android:top="10dp" />

         <stroke 
            android:width="2dp" 
            android:color="@color/skyblue" />
    </shape>
 </item>
 <!-- spinner_ab_default_new_theme_bs -> this image for corner triangle -->
<item

    android:drawable="@drawable/spinner_ab_default_new_theme_bs" >
    <shape>
        <solid
            android:color="@color/White">
        </solid>

        <corners android:radius="3dp" />

        <padding
            android:bottom="10dp" 
            android:left="10dp" 
            android:right="10dp" 
            android:top="10dp" />
         <stroke 
            android:width="2dp" 
            android:color="@color/gray"/>
    </shape>
</item>

我得到了如下图的输出
enter image description here

我尝试了很多但没有达到我的目标请任何人有解决方案来开发微调器。
就像上面的第一张图片。

最佳答案

微调器

<Spinner
    android:id="@+id/To_Units"
    style="@style/spinner_style" />

style.xml

    <style name="spinner_style">
          <item name="android:layout_width">match_parent</item>
          <item name="android:layout_height">wrap_content</item>
          <item name="android:background">@drawable/gradient_spinner</item>
          <item name="android:layout_margin">10dp</item>
          <item name="android:paddingLeft">8dp</item>
          <item name="android:paddingRight">20dp</item>
          <item name="android:paddingTop">5dp</item>
          <item name="android:paddingBottom">5dp</item>
          <item name="android:popupBackground">#DFFFFFFF</item>
     </style>

gradient_spinner.xml(在可绘制文件夹中)

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item><layer-list>
            <item><shape>
                    <gradient android:angle="90" android:endColor="#B3BBCC" android:startColor="#E8EBEF" android:type="linear" />

                    <stroke android:width="1dp" android:color="#000000" />

                    <corners android:radius="4dp" />

                    <padding android:bottom="3dp" android:left="3dp" android:right="3dp" android:top="3dp" />
                </shape></item>
            <item ><bitmap android:gravity="bottom|right" android:src="@drawable/spinner_arrow" />
            </item>
        </layer-list></item>

</selector>  

@drawable/spinner_arrow 是你的右下角图片

关于android - 如何在微调器周围创建自定义微调器,如右侧向下三角形的边框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17231683/

相关文章:

java - 当应用程序启动时,它崩溃

android - 在 Android 中更改编辑文本样式

java - 错误: Compressor is abstract; cannot be instantiated Android

android - 在 Android 上禁用蓝牙可发现模式

Android map API

android - 在 ImageView 的 setImageBitmap 之后 onmeasure 方法上的时间太多

android - 频率记录如何正确与扬声器配合使用?

android - 使用 RelativeLayout 时工具栏出现在布局顶部

android - 当最小化Android应用程序标题栏颜色变化时

java - 如何为按钮创建自定义形状