【问题标题】:android button with rainbow gradient带有彩虹渐变的 android 按钮
【发布时间】:2013-02-11 16:01:31
【问题描述】:

我想制作一个填充超过 3 种颜色的按钮,比如 7 种颜色的彩虹,从左 = 红色到右 = 紫色。

但我发现下面的代码只能满足 3 种颜色。

问题:

有没有办法生成彩虹渐变?我手上有一个 Rainbow.png,可以用吗?谢谢!!

当前代码:

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

    <item android:state_pressed="true" >         
        ...   
    </item>

    <item>
        <shape xmlns:android="http://schemas.android.com/apk/res/android"> 
            <stroke android:width="0dp" android:color="@color/black" />
            <gradient
                android:startColor="@color/red"
                android:centerColor="@color/green"
                android:endColor="@color/purple"
                android:angle="0" />
            <padding android:left="5dp" android:top="2dp" 
                android:right="5dp" android:bottom="2dp" /> 
            <corners android:radius="0dp" /> 
        </shape>
    </item>

</selector>

答案:

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

    <item android:state_pressed="true" >         
        <shape xmlns:android="http://schemas.android.com/apk/res/android"> 
            <stroke android:width="0dp" android:color="@color/black" />
            <solid android:color="@color/grey"/>
            <padding android:left="5dp" android:top="2dp" 
                android:right="5dp" android:bottom="2dp" /> 
            <corners android:radius="0dp" /> 
        </shape>    
    </item>

    <item android:drawable="@drawable/rainbow" >
        <shape xmlns:android="http://schemas.android.com/apk/res/android"> 

            <padding android:left="5dp" android:top="2dp" 
                android:right="5dp" android:bottom="2dp" /> 
            <corners android:radius="0dp" /> 
        </shape>
    </item>

</selector>

【问题讨论】:

    标签: android layout button gradient


    【解决方案1】:

    Android 内置了9-patch system 来处理复杂的图形,其风格类似于一些网站背景的绘制方式。

    Android 也有它自己的 9-patch creator 与 sdk 捆绑在一起,因此编辑 png 文件非常简单,然后将 9-patch 应用到按钮。

    这将允许您使用您的 png,它会根据您定义的图形的可拉伸区域调整大小,以便在按钮调整大小时调整大小

    【讨论】:

    • 感谢您的灵感,马特·泰勒!我只是反复试验并尝试严格替换项目 android:drawable="@drawable/rainbow" 然后效果很好!!!我已经在问题中发布了修改后的编码。系统只允许在 10 分钟内接受你的回答...我到时候接受你的回答 =) 谢谢!
    • 是的,我首先担心按钮的大小是否会受到影响,因为 png 尺寸对于我的小按钮来说太大了...无论如何它会自动调整 png 的大小并且按钮已完全填满,可以显示完整的 png...谢谢!
    • 是的,你可以直接把 png 作为背景,如果你得到缩放的人工制品,或者如果它有详细的角落,尝试使用 9-patch 系统
    猜你喜欢
    • 2016-09-14
    • 2021-12-28
    • 2017-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多