`

android -> 按钮 圆角 & 边框 & 渐变

 
阅读更多

 

参考: http://blog.csdn.net/lan410812571/article/details/9946991

 

 

设置虚线:

 

[html] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <shape xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:shape="line" >  
  4.     <stroke  
  5.         android:dashGap="3dp"  
  6.         android:dashWidth="6dp"  
  7.         android:width="1dp"  
  8.         android:color="#63a219" />  
  9.     <!-- 虚线的高度 -->  
  10.     <size android:height="1dp" />  
  11. </shape>  


其中,破折线的宽度为dashWith,破折线之间的空隙的宽度为dashGap,当dashGap=0dp时,为实线

 

 

设置圆角:

 

[html] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <shape xmlns:android="http://schemas.android.com/apk/res/android"   
  3.     android:shape="rectangle">  
  4.     <!-- 填充颜色 -->  
  5.     <solid android:color="#FFFFFF"></solid>  
  6.     <!-- 线的宽度,颜色灰色 -->  
  7.     <stroke android:width="1dp" android:color="#63a219"></stroke>          
  8.     <!-- 矩形的圆角半径 -->  
  9.     <corners android:radius="10dp" />         
  10. </shape>  


设置渐变填充和四个圆角半径: btn_corner_press: 

[html] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. <shape xmlns:android="http://schemas.android.com/apk/res/android"   
  2.     android:shape="rectangle">  
  3.     <!--分別對應上面左圆角的半径,上面右圆角的半径,下面左圆角的半径,下面右圆角的半径-->  
  4.     <corners    
  5.           android:topLeftRadius="0dp"  
  6.           android:topRightRadius="7dp"  
  7.           android:bottomLeftRadius="0dp"  
  8.           android:bottomRightRadius="7dp"/>  
  9.     <!--設置漸變-->  
  10.     <gradient android:startColor="#9cff00"   
  11.           android:endColor="#197600"  
  12.           android:angle="270"/>  
  13.     <stroke     
  14.         android:width="1dp"   
  15.         android:color="#63a219" />   
  16. </shape>  

 

设置 按下 按钮 新建 一个 新的 drawable 然后 调用以上的drawable

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

    <item android:state_pressed="true"   android:drawable="@drawable/btn_corner_press"  />
    <item android:state_focused="true" android:drawable="@drawable/btn_corner_press"  />
    <item android:drawable="@drawable/btn_corner_normal" />
</selector>

  

 

设置渐变点击效果:

 

[html] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. <style name="list_item_top">  
  2.     <item name="android:clickable">true</item>  
  3.     <item name="android:focusable">true</item>  
  4.     <item name="android:paddingTop">10dip</item>  
  5.     <item name="android:paddingBottom">10dip</item>  
  6.     <item name="android:paddingLeft">10dip</item>  
  7.         <item name="android:paddingRight">10dip</item>  
  8.         <item name="android:gravity">center_vertical</item>  
  9.         <item name="android:background">@drawable/background_view_rounded_top</item>  
  10. </style>  

 

[html] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <inset xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:insetLeft="1.0px"  
  4.     android:insetRight="1.0px" >  
  5.   
  6.     <selector>  
  7.         <item android:state_pressed="true">  
  8.             <shape>  
  9.                 <gradient  
  10.                     android:angle="270.0"  
  11.                     android:endColor="@color/base_end_color_pressed"  
  12.                     android:startColor="@color/base_start_color_pressed" />  
  13.   
  14.                 <corners  
  15.                     android:bottomLeftRadius="0.0dip"  
  16.                     android:bottomRightRadius="0.0dip"  
  17.                     android:radius="2.0dip"  
  18.                     android:topLeftRadius="10.0dip"  
  19.                     android:topRightRadius="10.0dip" />  
  20.                   
  21.                 <stroke   
  22.                     android:width="1dp"   
  23.                     android:color="#eededede" />  
  24.             </shape>  
  25.         </item>  
  26.         <item>  
  27.             <shape>  
  28.                 <gradient  
  29.                     android:angle="270.0"  
  30.                     android:endColor="@color/base_end_color_default"  
  31.                     android:startColor="@color/base_start_color_default" />  
  32.   
  33.                 <corners  
  34.                     android:bottomLeftRadius="0.0dip"  
  35.                     android:bottomRightRadius="0.0dip"  
  36.                     android:radius="2.0dip"  
  37.                     android:topLeftRadius="11.0dip"  
  38.                     android:topRightRadius="11.0dip" />  
  39.                   
  40.                 <stroke   
  41.                     android:width="1dp"   
  42.                     android:color="#eededede" />  
  43.             </shape>  
  44.         </item>  
  45.     </selector>  
  46.   
  47. </inset>  

 

 

重新补充:好久没有关注自己的博客,没有注意到各位的评论,关于4.0以上设备虚线会变实线的问题,下面几位仁兄已经给出了答案,

代码中可以添加:

 

[java] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. line.setLayerType(View.LAYER_TYPE_SOFTWARE, null);  


xml中可以添加:

 

 

[html] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. android:layerType="software"  

 

 

代码看附件:

分享到:
评论

相关推荐

    Android设置虚线、圆角、渐变

    在Android开发中,为UI元素添加虚线、圆角和渐变效果是常见的需求,可以提升应用的视觉吸引力。下面将详细讲解如何实现这些效果。 ### 一、虚线(Dashed Line) 在Android中,我们可以使用`Shape Drawable`来创建...

    Android 自定义UI圆角按钮

    在创建圆角按钮时,我们通常会使用Shape Drawable,它允许我们定义各种形状(如矩形、椭圆)并添加填充色、边框、渐变等样式。 创建圆角按钮的第一步是在`res/drawable`目录下创建一个新的XML文件,例如命名为`...

    HellowordShape

    -- 渐变类型,线性渐变 --&gt; /&gt; &lt;!-- 边框属性 --&gt; android:width="1dp" &lt;!-- 边框宽度 --&gt; android:color="#000000" &lt;!-- 边框颜色 --&gt; /&gt; &lt;!-- 内部填充属性 --&gt; &lt;solid android:color="#FFFFFF" /&gt; &lt;!-...

    android shape的使用及渐变色、分割线、边框、半透明阴影

    * `&lt;corners&gt;`:用于指定圆角的半径,可以使用`android:radius`属性指定半径,或者使用`android:topLeftRadius`、`android:topRightRadius`、`android:bottomLeftRadius`、`android:bottomRightRadius`属性指定四个...

    Android_Define_Button.rar_android_按钮 安卓

    -- 圆角 --&gt; android:width="2dp" android:color="#00FF00" /&gt; &lt;!-- 边框宽度和颜色 --&gt; &lt;/shape&gt; ``` 3. **点击状态动画** 为了实现按钮点击时的颜色变化,我们可以在同一个形状资源文件中添加`&lt;selector&gt;`...

    Android中使用Shape自定义形状

    -- 所有角5dp的圆角 --&gt; &lt;/shape&gt; ``` 3. **自定义形状** - **椭圆**:只需将`&lt;shape&gt;`标签更改为`&lt;oval&gt;`,所有点到中心的距离相等,形成一个圆形或椭圆形。 - **线**:使用`&lt;line&gt;`标签,指定`android:x1`、...

    android > 按钮Button 按下效果

    -- 圆角半径 --&gt; &lt;/shape&gt; &lt;/item&gt; &lt;item android:state_focused="true"&gt; &lt;shape android:shape="rectangle"&gt; &lt;solid android:color="#FF99CCFF" /&gt; &lt;!-- 聚焦时的颜色 --&gt; &lt;corners android:radius="5dp" /&gt; ...

    Android控件美化之Shape的使用[汇编].pdf

    -- 渐变 --&gt; android:startColor="#ff8c00" android:endColor="#FFFFFF" android:angle="270" /&gt; &lt;!-- 描边 --&gt; android:width="2dp" android:color="#dcdcdc" /&gt; &lt;!-- 圆角 --&gt; android:radius=...

    andorid 美化 扁平按钮美化

    -- 圆角半径 --&gt; android:left="8dp" android:right="8dp" android:top="4dp" android:bottom="4dp" /&gt; &lt;!-- 内边距 --&gt; &lt;/shape&gt; ``` 2. **设置按钮样式** 在布局文件中,将自定义的Shape作为按钮背景: ...

    Android按钮样式

    首先,Android系统自带了一些预设的按钮样式,如默认的`android:buttonStyle`,它通常呈现出带有边框和渐变色的矩形按钮。但开发者可以根据需求调整这些样式,使其与应用的整体设计风格保持一致。 1. **XML资源文件...

    Button图片资源

    -- 圆角半径 --&gt; android:width="1dp" android:color="@color/button_stroke_color" /&gt; &lt;!-- 边框颜色和宽度 --&gt; &lt;/shape&gt; ``` 2. **State List Drawable**: 为了处理按钮的不同状态,如默认、按下、聚焦等,...

    ShapeDrawable实例

    -- 圆角5dp --&gt; &lt;/shape&gt; ``` - 创建一个渐变背景: ```xml &lt;shape xmlns:android="http://schemas.android.com/apk/res/android"&gt; android:startColor="#00FF00" android:endColor="#0000FF" android:...

    Android自定义矩形及selector、shape的使用

    -- 设置圆角 --&gt; android:width="2dp" android:color="#000000" /&gt; &lt;!-- 边框,2dp宽,黑色 --&gt; &lt;/shape&gt; ``` 然后,在布局文件中,我们可以将这个`rect_shape.xml`作为背景应用到一个`View`上,如`Button`: ``...

    AndroidUI设计,android——shape

    -- 圆角半径 --&gt; &lt;stroke android:width="1dp" android:color="#000000" /&gt; &lt;!-- 边框 --&gt; &lt;/shape&gt; ``` 四、在XML布局中的引用 将`shape`资源保存在`res/drawable`目录下,然后在布局文件中通过`android:...

    android动态改变shape的颜色值

    -- 圆角半径 --&gt; &lt;padding android:left="5dp" android:top="5dp" android:right="5dp" android:bottom="5dp" /&gt; &lt;!-- 内部填充 --&gt; &lt;/shape&gt; ``` 在上述代码中,`@color/your_color`和`@color/stroke_color`是...

    Android 自定义Button控件实现按钮点击变色

    -- 可选的渐变效果 --&gt; &lt;/shape&gt; &lt;/item&gt; &lt;item&gt; &lt;!-- 默认未点击时的样式 --&gt; &lt;shape android:shape="rectangle"&gt; &lt;solid android:color="#3fb3f6" /&gt; &lt;!-- 默认填充颜色 --&gt; &lt;stroke android:width="2dp" ...

    Android shape 属性

    -- 圆角 --&gt; android:width="1dp" android:color="#000000" /&gt; &lt;!-- 边框 --&gt; &lt;/shape&gt; ``` 通过这种方式,开发者可以灵活地自定义UI元素的外观,实现各种复杂的设计。在实际应用中,还可以结合selector来实现...

    SuperButton-这真的可能是最好用的按钮了.zip

    --按钮圆角,如果单独设置会覆盖此设置--&gt;   name="corner" format="dimension" /&gt;  &lt;!--左上角圆角半径--&gt;   name="corner_left_top" format="dimension" /&gt;  &lt;!--左下角圆角半径--&gt;   ...

    Android-FlycoRoundView-一个扩展原生控件支持圆角矩形框背景的库可以减少相关shape资源文件使用

    在Android开发中,UI设计是至关重要的一环,而圆角矩形框背景是常见的界面元素,常用于按钮、卡片等视图。为了实现这样的效果,开发者通常需要创建XML形状资源文件来定义圆角属性。然而,这样的做法既繁琐又不够灵活...

Global site tag (gtag.js) - Google Analytics