当前位置: 首页 > 知识库问答 >
问题:

自定义搜索栏(拇指大小、颜色和背景)

养焱
2023-03-14

这是我的seekbar:

<SeekBar
        android:id="@+id/seekBar_luminosite"
        android:layout_width="@dimen/seekbar_width"
        android:layout_height="@dimen/seekbar_height"
        android:minHeight="15dp"
        android:minWidth="15dp"
        android:maxHeight="15dp"
        android:maxWidth="15dp"
        android:progress="@integer/luminosite_defaut"
        android:progressDrawable="@drawable/custom_seekbar"
        android:thumb="@drawable/custom_thumb" />

这是我的拇指。xml:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval" >

    <gradient
        android:angle="270"
        android:endColor="@color/colorDekraOrange"
        android:startColor="@color/colorDekraOrange" />

    <size
        android:height="35dp"
        android:width="35dp" />

</shape>

这是我的定制搜索栏。xml:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@android:id/background"
        android:drawable="@drawable/seekbar"/>
    <item android:id="@android:id/progress">
        <clip android:drawable="@color/colorDekraYellow" />
    </item>

</layer-list>

这是我的搜索棒。巴布亚新几内亚(背景):

酒吧里没有阴影,也没有圆边。。。

我真的不明白我该怎么做。

共有3个答案

越飞翮
2023-03-14

条中没有阴影和圆形边框

您使用的是图像,因此最简单的解决方案是随流划船,

您不能手动指定高度,是的,您可以,但请确保它有足够的空间显示您的完整图像视图

  • 最简单的方法是使用android:layout_height="wrap_content"SeekBar
  • 为了获得更清晰的圆形边框,您可以轻松地使用与其他颜色相同的图像。

我不擅长Photoshop,但我设法编辑了一个测试背景

<SeekBar
    android:splitTrack="false"   // for unwanted white space in thumb
    android:id="@+id/seekBar_luminosite"
    android:layout_width="250dp"   // use your own size
    android:layout_height="wrap_content"
    android:minHeight="10dp"
    android:minWidth="15dp"
    android:maxHeight="15dp"
    android:maxWidth="15dp"
    android:progress="50"
    android:progressDrawable="@drawable/custom_seekbar_progress"
    android:thumb="@drawable/custom_thumb" />

custom_seekbar_progress.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@android:id/background"
        android:drawable="@drawable/seekbar" />
    <item android:id="@android:id/progress">
        <clip android:drawable="@drawable/seekbar_brown_to_show_progress" />
    </item>
</layer-list>

定制拇指。xml和您的一样

最后,android:splitTrack=“false”将删除拇指中不需要的空白

让我们看看输出:

伍玮
2023-03-14
匿名用户

>

  • 首先,使用android:splitTrack=“false”解决拇指的透明度问题。

    为了seekbar。png,你必须使用一个9补丁。这将有利于圆形边框和图像的阴影。

  • 鲁城
    2023-03-14

    全部在XML中完成(没有. png图像)。聪明的一点是border_shadow.xml

    关于这些天的向量的一切。。。

    截图:

    <SeekBar
        android:id="@+id/seekBar_luminosite"
        android:layout_width="300dp"
        android:layout_height="wrap_content"        
        android:progress="@integer/luminosite_defaut"
        android:progressDrawable="@drawable/seekbar_style"
        android:thumb="@drawable/custom_thumb"/>
    

    让我们把它变得时尚(这样你以后就可以很容易地定制它):

    #seekbar_style.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
        <item 
            android:id="@android:id/background" 
            android:drawable="@drawable/border_shadow" >
        </item>
    
        <item 
            android:id="@android:id/progress" > 
            <clip 
                android:drawable="@drawable/seekbar_progress" />
        </item>
    </layer-list>
    

    res/可绘制/自定义\u拇指。xml:

    <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
        <item>
            <shape android:shape="oval">
                <solid android:color="@color/colorDekraOrange"/>
                <size
                    android:width="35dp"
                    android:height="35dp"/>
            </shape>
        </item>   
    </layer-list>
    

    #seekbar_progress.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <layer-list 
        xmlns:android="http://schemas.android.com/apk/res/android" >
        <item 
            android:id="@+id/progressshape" >
            <clip>
                <shape 
                    android:shape="rectangle" >
                    <size android:height="5dp"/>
                    <corners 
                        android:radius="5dp" />
                    <solid android:color="@color/colorDekraYellow"/>        
                </shape>
            </clip>
        </item>
    </layer-list>
    

    res/drawable/border\u阴影。xml

    <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">       
        <item>      
            <shape> 
                <corners 
                    android:radius="5dp" />
                <gradient
                    android:angle="270"
                    android:startColor="#33000000"
                    android:centerColor="#11000000"
                    android:endColor="#11000000"
                    android:centerY="0.2"
                    android:type="linear"
                />          
            </shape> 
        </item>
    </layer-list>
    

     类似资料:
    • 我想改变它的颜色拇指像这样...:(我知道如何改变背景进度颜色,但不是拇指颜色)... 有没有办法用java代码实现这一点?提前谢谢!!

    • 我在设计JScrollPane的样式时遇到问题。我只想能够更改拇指和背景的颜色(同时删除增加/减少按钮)。到目前为止,我尝试了以下方法: 而且 有了上面所有的代码,我得到了一个白色背景的暗拇指。有趣的是,如果我删除setUI函数,我会得到一个默认的拇指,背景变暗... 有什么想法吗? 谢啦 解决****** 上面的configureScrollBarColors函数可以通过以下方式使用: 把拇指的

    • 问题内容: 因此,我看到我们可以使用具有灰色和白色(当setinverse …时)背景色的Alertdialog。 要了解为什么我检查了sdk的themes.xml,检查了它是否导致了可绘制对象,并且在那里我意识到alertdialog背景不是以编程方式完成的,而是通过一些图像完成的。这些图像保证了当我们使用LayoutInflater设置不同的背景色时,对话框的顶部(标题区域)和底部(按钮区域上

    • 我在styles.xml中使用一个主题,如下所示: 我在AndroidManifest.xml中将其声明为Android:theme: 问题在下图中以红色突出显示。 感谢所有的答案!

    • 问题内容: 我有这个课: 问题是当我在JList中选择一个单元格时,我的背景不会变成红色。setText部分有效,但是我无法弄清楚为什么它不会更改单元格的背景颜色。任何人都有任何想法,谢谢! 问题答案: 主要问题是标签默认情况下是不透明的,因此您需要使标签不透明才能绘制背景。 但是您不需要为此创建自定义渲染器。默认渲染器是不透明的。您所需要做的就是设置列表的选择背景属性: 如果您尝试创建一个渲染器

    • 本文向大家介绍Android自定义状态栏颜色与应用标题栏颜色一致,包括了Android自定义状态栏颜色与应用标题栏颜色一致的使用技巧和注意事项,需要的朋友参考一下 每次看IOS上的应用,应用中状态栏的颜色总能与应用标题栏颜色保持一致,用户体验很不错,对于这种效果,像我这种好奇心强的人就会去看看那安卓是否可以呢?若是在安卓4.4之前,答案是否定的,但在4.4之后,谷歌允许开发者自定义状态栏背景颜色啦