在上篇博客一起来说说那些你不知道的Drawable中,我们介绍了各类的Drawable对象,对各个属性也进行了介绍。当然还有一些疑惑点还没解释,我们暂且搁置一边,先来根据各个属性做个练习。Let’s go!!

算作一个小系列吧!

一起来说说那些你不知道的Drawable

在这里给大家推荐一个在线查看shape效果的网站:

http://angrytools.com/android/button/

案例一、带边框的圆角背景图

分析:

  • 边框线:边框线的绘制我们需要使用stroke标签
  • 圆角:使用corners标签

即我们的shape文件的配置如下:

    <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">        <padding android:left="5dp" android:top="5dp" android:right="5dp" android:bottom="5dp" />        <corners android:radius="8dp"/>        <stroke android:width="1dp" android:color="#646464"/>    </shape>

                     

是不是很简单,在也不用可怜巴巴的找美工的切图了。

案例二、实现下划线背景

在实际开发中,我们经常可以看到布局中间充斥着一些线条,有些同学使用一个view进行模拟。

    <View  android:layout_height="0.5dp" android:layout_width="match_parent" android:backgroud="#808080"/>

这样是不是很low,而且还在布局文件中防止了大量的控件,降低了布局的解析速度,降低了效率。熟练使用各类drawable,即可帮助我们解决这个问题。

分析:既然实现下划线背景,说明我们还是要描边,即需要stroke标签,但是仔细想想,系统给我们提供的描边,是对四个边都进行描边,那我们怎么实现只有下划线的描边呢?这里我们可以换种思路,即利用layer-list,通过图层的叠盖,达到效果。

    <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >        <item>            <shape android:shape="rectangle">                <stroke android:color="#606060" android:width="1dp"/>            </shape>        </item>         <item android:bottom="1dp">            <shape android:shape="rectangle">                <solid android:color="#FFFFFF"/>            </shape>        </item>    </layer-list>

在第一个图层item中,我们实现了边框。在第二个图层item中,我们通过设置paddingBottom属性达到覆盖效果。

                     

相应的,我们通过修改left,right,top可以实现上下左右边框线的效果。

案例三、实现灰色背景效果

    <selector xmlns:android="http://schemas.android.com/apk/res/android" >        <item android:state_pressed="true">            <shape android:shape="rectangle">                <stroke android:width="0.5dp" android:color="#909090"/>                <solid android:color="#606060"/>                <corners android:radius="2dp"/>            </shape>        </item>        <item android:state_pressed="false">            <shape android:shape="rectangle">                <stroke android:width="0.5dp" android:color="#909090"/>                <solid android:color="#FFFFFF"/>                <corners android:radius="2dp"/>            </shape>        </item>    </selector>

效果图:
                     

暂时想到这么多,其实只要基础的原理会了,自然写起来就方便。后面想起来在补吧!如果大家有比较好的案例,欢迎推荐。

更多相关文章

  1. Android中给LineayLayout加边框
  2. android 自定义dialog 去边框
  3. Android(安卓)3D游戏开发技术详解与典型案例
  4. Android自定义View 一
  5. 在添加android SDk 组件的时候报错 The currently displayed pag
  6. Android白虹剑之EditView之非法输入
  7. androidのXlist框架上拉下拉刷新案例
  8. Android(安卓)button自定义显示
  9. Android使用TextView实现无下划线超链接的方法

随机推荐

  1. Android架构组件Room的使用
  2. 《Android Dev Guide》系列教程
  3. android平台phonegap框架实现原理
  4. android 教程资源推荐
  5. Android基础03-事件处理
  6. Android Application
  7. 详解Android 目录结构
  8. Android系统介绍及架构概览
  9. android 百度地图的经度纬度问题
  10. Android知识梳理:获得源码和编译系统