在Android中制作像按钮一样的玻璃

时间:2014-10-10 04:50:33

标签: android xml android-layout button android-selector

我通过在gradient.xml文件中指定样式来制作像按钮一样的玻璃,但我没有得到任何输出,我正在使用这个样式到我的应用程序的所有按钮...我是新手请帮助..这是我的代码

gradient.xml

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

   <item android:state_focused="false">
    <shape xmlns:android="http://schemas.android.com/apk/res/android" >
     <gradient 
        android:startColor="#2F000000" 
        android:endColor="#2fDEDEDE"  
        android:angle="270" />
    <!-- <stroke 
        android:width="1dp" 
        android:color="#bb00ff00" /> -->
    <corners 
        android:radius="3dp" />
    <padding 
        android:left="10dp" 
        android:top="10dp"
        android:right="10dp" 
        android:bottom="10dp" />
   </shape>
 </item>
 <item android:state_pressed="true" >
   <shape>
    <gradient 
        android:startColor="#2F000000" 
        android:endColor="#2fDEDEDE" 
        android:angle="270" />
   <!--  <stroke 
        android:width="1dp" 
        android:color="#bb00ff00" /> -->
    <corners 
        android:radius="3dp" />
    <padding 
        android:left="10dp" 
        android:top="10dp" android:right="10dp" 
        android:bottom="10dp" />
    </shape>
 </item>
 <item>
<shape>
     <gradient
        android:startColor="#2F000000" 
        android:endColor="#2fDEDEDE" 
        android:angle="180" />
        <!-- <gradient
        android:startColor="@color/cream_dark"
        android:endColor="@color/cream"
        android:angle="270"/> -->

     <!--  <stroke 
        android:width="1dp" 
        android:color="#ffffffff" />  -->
    <corners
        android:bottomRightRadius="3dp"
        android:bottomLeftRadius="3dp"
        android:topLeftRadius="3dp"
        android:topRightRadius="3dp"/>
    <padding 
        android:left="10dp" 
        android:top="10dp"
        android:right="10dp" 
        android:bottom="10dp" />
</shape>

2 个答案:

答案 0 :(得分:1)

如果你期待这样的话

enter image description here

然后找到下面的代码......

drawable文件夹中的glass.xml。

<item android:state_focused="false"><shape>
        <gradient android:angle="270" android:endColor="#2fDEDEDE" android:startColor="#2F000000" />

        <corners android:radius="3dp" />

        <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" />
    </shape></item>
<item android:state_pressed="true"><shape>
        <gradient android:angle="270" android:endColor="#2fDEDEDE" android:startColor="#2F000000" />

        <corners android:radius="3dp" />

        <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" />
    </shape></item>
<item><shape>
        <gradient android:angle="180" android:endColor="#2fDEDEDE" android:startColor="#2F000000" />

        <corners android:bottomLeftRadius="3dp" android:bottomRightRadius="3dp" android:topLeftRadius="3dp" android:topRightRadius="3dp" />

        <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" />
    </shape></item>

布局文件

<Button
    android:id="@+id/text1"
    android:layout_width="fill_parent"
    android:layout_height="60dp"
    android:layout_marginLeft="50dp"
    android:layout_marginRight="50dp"
    android:layout_marginTop="200dp"
    android:background="@drawable/glass"
    android:gravity="center"
    android:text="Trail"
    android:textColor="@android:color/holo_blue_light"
    android:textSize="15dp" />

希望它能帮到你......

答案 1 :(得分:1)

在drawable中创建一个单独的.xml(例如.xyz.xml)文件并将渐变代码粘贴到其中。 然后将按钮的背景设为android:background =“@ drawable / xyz”

示例:

<Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"       
        android:layout_height="wrap_content"
        android:text="Mirror Button"
        android:textColor="#000000"
        android:textSize="20dp"
        android:background="@drawable/xyz"
        android:gravity="center" />