如何制作弯曲的布局

时间:2016-11-22 17:04:25

标签: android xml android-layout layout

enter image description here

我正在努力使一个半透明的布局,我正在尝试的是使红色部分透明,而不是强烈着色的部分。我可以设置这个,在一个背面放置一个黑色的层层,但我想使它半透明像红色部分将显示放在背面的图像我该怎么办? 这是我试过的xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke
    android:width="0.5dp"
    android:color="@color/white" />
<corners
    android:bottomLeftRadius="150dp"
    android:bottomRightRadius="1000dp"
    android:topLeftRadius="0dp"
    android:topRightRadius="0dp" />
<padding
    android:bottom="0dp"
    android:left="0dp"
    android:right="0dp"
    android:top="0dp" />

<solid android:color="@color/red"
    />

3 个答案:

答案 0 :(得分:1)

您可以将此形状绘制在图层列表drawable中:

<?xml version="1.0" encoding="utf-8"?>
<layer-list
    xmlns:android="http://schemas.android.com/apk/res/android" >
    <!-- black background -->
    <item android:drawable="@android:color/black"/>
    <!-- red shape on top of black background -->
    <item android:drawable="@drawable/curved_shape"/>
</layer-list>

然后使用此图层列表drawable作为背景。

答案 1 :(得分:1)

所以我猜你已经设定了弯曲的形状。要使其透明,请使用其透明颜色而不是简单的red颜色。尝试使用xml代码。

<gradient
    android:angle="45"
    android:endColor="#aaF00"
    android:centerColor="#aaF00"
    android:startColor="#aaF00" />

所以整个文件看起来像:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke
    android:width="0.5dp"
    android:color="@color/white" />
<corners
    android:bottomLeftRadius="150dp"
    android:bottomRightRadius="1000dp"
    android:topLeftRadius="0dp"
    android:topRightRadius="0dp" />
<padding
    android:bottom="0dp"
    android:left="0dp"
    android:right="0dp"
    android:top="0dp" />
<gradient
    android:angle="45"
    android:endColor="#aa000000"
    android:centerColor="#aa000000"
    android:startColor="#aa000000" />
/> 

我已经为你的红色添加了alpha。请参阅this link for more information about alpha scale.

您还可以访问this for exact information about colors and especially alpha scale to make color transparent.

希望这会对你有所帮助:)。

答案 2 :(得分:0)

只需将布局放在黑色背景的布局中即可。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:tools="http://schemas.android.com/tools"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:orientation="horizontal"
              android:background="#000000">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="horizontal"
            android:background="@drawable/your_shape">
            <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Hello World!" />
        </LinearLayout>

</LinearLayout>