zoukankan      html  css  js  c++  java
  • android shape图形优化Button效果

      android shape可以让我们通过定义xml文件的方式创建图形,当然只能实现一些比较简单的图形(圆形,矩形,椭圆,线段),但是已经相当不错了,通过shape创建的图形作为控件的背景已经基本可以满足我的简单需求了,而且通过shape创建的图形可以适配各种屏幕。

      下面就用shape定义的图形来优化Button的整体效果。

      定义主布局文件activity_main.xml:

     1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     2     xmlns:tools="http://schemas.android.com/tools"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     tools:context=".MainActivity" >
     6 
     7     <Button 
     8         android:layout_height="48dp"
     9         android:layout_width="160dp"
    10         android:background="@drawable/button_selector"
    11         android:layout_centerInParent="true"
    12         android:text="按钮"/>
    13 </RelativeLayout>

       定义Button的状态选择器button_selector.xml:

    1 <?xml version="1.0" encoding="utf-8"?>
    2 <selector
    3   xmlns:android="http://schemas.android.com/apk/res/android">
    4     <item android:state_focused="false" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/button_shape" />
    5     <item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/button_shape" />
    6     <item android:state_pressed="true" android:drawable="@drawable/button_shape_press" />
    7     <item android:state_focused="true" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/button_shape" />
    8 </selector>

      定义Button未点击状态的背景button_shape.xml:

     1 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
     2 <shape xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:shape="rectangle">
     4     <!--渐变 -->
     5     <gradient android:angle="0" android:endColor="#DCDCE1" android:startColor="#DCDCE1" android:centerColor="#DCDCE1"/>
     6     <!--实心  -->
     7     <solid android:color="#DCDCE1"/>
     8     <!--圆角,可定义四个圆角的大小  -->
     9     <corners android:radius="3dp" />
    10     <!--描边, 可设置边的宽度颜色 -->
    11     <stroke android:width="1dp" android:color="#C8C8CD" />
    12     <!--内边距-->
    13     <padding android:bottom="0dp" android:left="0dp" android:right="0dp" android:top="0dp"/>
    14 </shape>

      定义Button点击状态的背景button_shape_press.xml:

    1 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    2 <shape xmlns:android="http://schemas.android.com/apk/res/android"
    3     android:shape="rectangle">
    4     <gradient android:angle="0" android:endColor="#C8C8CD" android:startColor="#C8C8CD" android:centerColor="#C8C8CD"/>
    5     <solid android:color="#C8C8CD"/>
    6     <corners android:radius="3dp"/>
    7     <stroke android:width="1dp" android:color="#C8C8CD" />
    8     <padding android:bottom="0dp" android:left="0dp" android:right="0dp" android:top="0dp"/>
    9 </shape>

    最终效果如下图:

     

  • 相关阅读:
    Unity3D鼠标点击处
    Unity3D静态AI自动寻路
    Unity3D 雷达检测器
    Unity3D重新加载光线变暗问题
    Unity3D切换场景不销毁物体
    软件&环境&网页
    2020软件工程作业05
    2020软件工程作业04
    利用Java输入输出流更改文件中指定的内容
    2020软件工程作业03
  • 原文地址:https://www.cnblogs.com/TonyChan7/p/3829892.html
Copyright © 2011-2022 走看看