Android - 绘制功能区形状

时间:2017-07-03 05:31:56

标签: android shape ribbon

我正在尝试不使用图片视图。这是因为,稍后,我将生成许多具有相同形状但颜色不同的对象,因此我不需要继续添加图像视图,只需在我的代码上添加颜色。

enter image description here

如何在Android Studio上创建这些图像?我查看了Paint,onDraw,Canvas等,但这对我来说很难。

4 个答案:

答案 0 :(得分:3)

如果您想使用XML,请尝试这种方式

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


    <item>
        <shape android:shape="rectangle">
            <size
                android:width="100dp"
                android:height="40dp" />
            <solid android:color="#5EB888" />
            <corners android:radius="0dp"/>
        </shape>
    </item>


    <item
        android:top="-26dp"
        android:bottom="31dp"
        android:left="-90dp"
        android:right="75dp">
        <rotate
            android:fromDegrees="45">
            <shape android:shape="rectangle">
                <solid android:color="#ffffff" />
            </shape>
        </rotate>
    </item>



</layer-list>

<强>输出

enter image description here

答案 1 :(得分:1)

您可以使用任何矢量程序(如Adobe Illustrator)创建矢量图像,或使用vectormagic之类的转换工具进行转换,或找到现有的矢量图像,然后将其导入android studio。

enter image description here

它将作为xml文件导入,您可以根据需要更改颜色

答案 2 :(得分:1)

创建一个名为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="90"
        android:pivotX="0%"
        android:pivotY="1%" >
        <shape android:shape="rectangle" >
            <stroke
                android:width="10dp"
                android:color="#00000000" />

            <solid android:color="#ffffff" />
        </shape>
    </rotate>
</item>

现在,创建一个视图布局来创建这种类型的条纹或图像,如下所示: -

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<LinearLayout
    android:id="@+id/llMain"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="0.1"
    android:background="@color/black"
    android:orientation="horizontal">

    <ImageView
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="0.1"
        android:background="@drawable/left_arrow"
        android:contentDescription="@string/app_name" />

    <ImageView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="0.9"
        android:contentDescription="@string/app_name" />

</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="0.9" />

以上布局将所需的箭头条纹创建为布局。

现在将此布局添加到您需要的布局中,以便显示此条纹。例如,

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">

<include 
android:id="@+id/llMain"
layout="@layout/xtra"/>

</LinearLayout>

现在,您还可以使用&#34; llMain&#34;来使用OnClickListener。 希望它会有所帮助。

答案 3 :(得分:0)

你可以使用你已经拥有的白色png图像,并使用图像视图类中的setColorFilter方法用你想要的任何颜色着色