首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >具有渐变边框和阴影的Android形状

具有渐变边框和阴影的Android形状
EN

Stack Overflow用户
提问于 2016-12-26 18:51:07
回答 3查看 12.5K关注 0票数 8

我有一个png的按钮可抽屉。但它的图像绘制有梯度,当应用9patch时看起来很糟糕(梯度和9patch不兼容)。我想用形状来做这件事。但是我不能用android图形来绘画,因为它对我来说很难理解。

你能帮我画一个有形状的图像吗?

它包含一个边框渐变,里面有一个圆角橙色矩形和120°阴影

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-12-29 22:49:46

这就是你要的

创建您的布局

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#c8c0c0"
    android:orientation="vertical">


    <LinearLayout
        android:layout_width="120dp"
        android:layout_height="120dp"
        android:layout_centerInParent="true"
        android:background="@drawable/my_rectangle">

    </LinearLayout>

</RelativeLayout>

在可绘制文件夹中创建my_rectangle.xml文件

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <gradient
                android:angle="270"
                android:endColor="#000000"
                android:startColor="#FFFFFF" />
            <corners android:radius="10dp" />
            <padding
                android:bottom="5dp"
                android:left="5dp"
                android:right="5dp"
                android:top="5dp" />
        </shape>
    </item>
    <item>
        <shape android:shape="rectangle">
            <solid android:color="#e95d11" />
            <corners android:radius="10dp" />
            <size
                android:width="50dp"
                android:height="50dp" />
        </shape>
    </item>
</layer-list>

结果

备注

  1. 我做了一个120 * 120的正方形,改变尺寸使它成为矩形
  2. 我使圆角的半径为10dp,如果你想要
  3. 我使填充为5dp,你也可以改变它

干杯

票数 21
EN

Stack Overflow用户

发布于 2019-10-24 14:38:29

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape android:shape="rectangle">
        <gradient
            android:angle="180"
            android:endColor="@color/transperent"
            android:startColor="@color/quantum_orange" />
        <corners android:radius="5dp" />
        <padding
            android:bottom="1dp"
            android:left="1dp"
            android:right="1dp"
            android:top="1dp" />
    </shape>
</item>
<item>
    <shape android:shape="rectangle">
        <solid android:color="@color/white" />
        <corners android:radius="5dp" />
        <size
            android:width="50dp"
            android:height="50dp" />
    </shape>
</item>

票数 1
EN

Stack Overflow用户

发布于 2019-05-13 22:00:16

虽然公认的答案是正确的,但最好使用9-patch。参见Creating & Using 9-patch images in Androidhttps://developer.android.com/studio/write/draw9patchHow do I put a border around an Android textview?。也许SVG-images能帮上忙,但我还没有成功。同样在被接受的答案中,阴影可以每45度旋转一次,例如,你可以尝试315度而不是270度。

您可以使用9-patch工具。'Draw9patch‘工具从sdk/tools文件夹中消失了,但它可能在这里:https://androidstudio.io/downloads/tools/download-the-latest-version-of-draw9patch.jar.html

  1. 从您的设计中复制图像(带阴影的边框)。
  2. 将其粘贴到图像编辑器中,如Photoshop、Gimp。
  3. 使用矩形、魔术棒工具清除不需要的空间。

Simple nine-patch generator.

  • Paste
  1. 将图像另存为PNG,然后打开图像并移动标尺。

  1. 下载ZIP并解压缩到项目的res文件夹中。
  2. 现在您可以将这些9.png图像用作阴影。

9-patch比使用渐变和CardView的XML shadows更容易使用。在Android中的阴影是可怕的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41330107

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档