如何在android上创建一个尖按钮?

发布于 2024-12-11 05:31:05 字数 645 浏览 0 评论 0原文

如何在 Android XML 中创建像 iPhone 后退按钮这样的尖按钮?

在此处输入图像描述

我想使用这样的方式创建

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

    <item android:state_pressed="true" >
        <shape>
            <gradient
                android:startColor="#f8bb49"
                android:endColor="#f7941d"
                android:angle="270" />
            <stroke
                android:width="1dp"
                android:color="#8c8382" />
            <corners.....

How can I create a pointy button like iPhone back button in Android XML ?

enter image description here

I want to create using like this

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

    <item android:state_pressed="true" >
        <shape>
            <gradient
                android:startColor="#f8bb49"
                android:endColor="#f7941d"
                android:angle="270" />
            <stroke
                android:width="1dp"
                android:color="#8c8382" />
            <corners.....

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

心凉 2024-12-18 05:31:05

Path 和 PathShape 可以构建任何你想要的东西。通过将几个分层在一起并使用渐变填充,您可以创建 3D 效果(凹进)效果。

但是,如果您希望能够使用 XML 定义,则需要一个可用于创建可绘制引用的类。抱歉,我还没有计算出确切的代码,但这是我计划做的事情(这就是我找到你的问题的方式)。

Path and PathShape can build whatever you want. By layering a couple together and using a gradient fill you can create the 3D effect (recessed) effect.

However, you will need a class that you can use to create a drawable reference if you want to be able to use an XML definition. Sorry I have not worked out the exact code, but it's something I'm planning to do (which is how I found your question).

疯了 2024-12-18 05:31:05

看来您有可以使用的图像。阅读有关 9-patch 的文档以设置边距和可调整大小的区域。

http://developer.android.com/guide/developing/tools/draw9patch.html

Looks like you have an image you can work with. Read the docs on 9-patches to set margins and resizable areas.

http://developer.android.com/guide/developing/tools/draw9patch.html

饮惑 2024-12-18 05:31:05

像这样创建图像并使用 ImageButton 而不是 Button
并且,将此属性用于 ImageButton

android:background="@drawable/createdimage"

Create image like that and use ImageButton instead of Button
and , use this property for ImageButton

android:background="@drawable/createdimage"
空袭的梦i 2024-12-18 05:31:05

我为以下后退按钮

https://drive.google.com/file/d/0B1cySRpqElgyTkptOFpQa3NsdDQ 执行此操作

使用 XML 文件:

left_arrow.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
  <item >
        <rotate
            android:fromDegrees="-45"
            android:toDegrees="-45"
            android:pivotX="89%"
            android:pivotY="-22%" >
            <shape 
                android:shape="rectangle" >
                <stroke android:color="@color/calendarOrange" android:width="3dp"/>
                <solid
                    android:color="@color/drakBlue" />
            </shape>
        </rotate>
    </item> 
</layer-list>

button_body.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:left="-4dp">
        <shape   android:shape="rectangle" >
                <stroke android:color="@color/calendarOrange" android:width="3dp"/>
                <solid
                    android:color="@color/drakBlue" />
        </shape>
    </item>
</layer-list>

将它们放在一起

<LinearLayout 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal"
    android:weightSum="1.0"
    >
    <RelativeLayout 
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@drawable/left_arrow"
        android:layout_weight="0.7"
        >
    </RelativeLayout>
    <RelativeLayout 
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@drawable/button_body"
        android:layout_weight="0.3"
    >

        <TextView 
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:textColor="@color/white"
            android:text="Back"
            android:gravity="center"
            android:textStyle="bold"
            android:textSize="22dp"
        />
    </RelativeLayout>
</LinearLayout>

PS:您可能需要更改 android:pivotXandroid:pivotY 参数取决于您的容器布局

I did this for the following back button

https://drive.google.com/file/d/0B1cySRpqElgyTkptOFpQa3NsdDQ

using the XML files:

left_arrow.xml:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
  <item >
        <rotate
            android:fromDegrees="-45"
            android:toDegrees="-45"
            android:pivotX="89%"
            android:pivotY="-22%" >
            <shape 
                android:shape="rectangle" >
                <stroke android:color="@color/calendarOrange" android:width="3dp"/>
                <solid
                    android:color="@color/drakBlue" />
            </shape>
        </rotate>
    </item> 
</layer-list>

button_body.xml:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:left="-4dp">
        <shape   android:shape="rectangle" >
                <stroke android:color="@color/calendarOrange" android:width="3dp"/>
                <solid
                    android:color="@color/drakBlue" />
        </shape>
    </item>
</layer-list>

Getting them together:

<LinearLayout 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal"
    android:weightSum="1.0"
    >
    <RelativeLayout 
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@drawable/left_arrow"
        android:layout_weight="0.7"
        >
    </RelativeLayout>
    <RelativeLayout 
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@drawable/button_body"
        android:layout_weight="0.3"
    >

        <TextView 
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:textColor="@color/white"
            android:text="Back"
            android:gravity="center"
            android:textStyle="bold"
            android:textSize="22dp"
        />
    </RelativeLayout>
</LinearLayout>

PS: You might need to change the android:pivotX and android:pivotY parameters depending on your conteiner layout

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文