zoukankan      html  css  js  c++  java
  • android圆角View实现及不同版本这间的兼容(android3.0过后的版本)

    http://blog.csdn.net/lovecluo/article/details/8710174

    在做我们自己的APP的时候,为了让APP看起来更加的好看,我们就需要将我们的自己的View做成圆角的,毕竟主流也是将很多东西做成圆角,和苹果的外观看起来差不多,看起来也还不错。
    要将一个View做成圆角的也很容易,只需要建立一个自定义的Drawable就可以了。
    我们在res/drawable下面建立一个shape的drawable,代码如下:

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android" >
        <corners 
            android:topLeftRadius="5dp"
            android:topRightRadius="5dp"
            android:bottomLeftRadius="5dp"
            android:bottomRightRadius="5dp"/>
        <stroke 
            android:width="1dp"
            android:color="#FF5500"
            />
    </shape>

    在这个里面,corners是指的圆角,stroke 是指的边框颜色,有关shape的相关信息可以看官方文档,或者在网上搜搜,有讲的非常详细的博客。

    本来没有问题的,可是我后面在做那个只有左边有圆角和只有右边有圆角的时候,出现了一个问题,那就是在android3.0以前,android:bottomLeftRadius与android:bottomRightRadius是相反的,也就是说,我本来只是设置左边,却成了一个对角显示了,由于本人又没有学好,但是在网上找了好久没有找到解决办法,后面知道了android加载布局文件的方法后,就知道了这个的解决办法,特在此记录一下,就是在我们的res下建立一个叫drawable-v12的文件目录,这个文件目录是android3.0过后的版本访问的位置,所以只需要在这个里面放置正确的布局文件就可以了。
    代码如下 :
    在android3.0以下要写成这样(左边全是圆角):

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android" >
        <corners 
            android:topLeftRadius="5dp"
            android:bottomRightRadius="5dp"/>
        <stroke 
            android:width="1dp"
            android:color="#FF5500"
            />
    </shape>

    而在android3.0以上的版本中,google为我们解决了这个问题,所以我们只需要按照正常情况的写,并把文件放在res/drawable-v12下就行了,如下:

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android" >
        <corners 
            android:topLeftRadius="5dp"
            android:bottomLeftRadius="5dp"/>
        <stroke 
            android:width="1dp"
            android:color="#FF5500"
            />
    </shape>

    在右边的和上面的解决办法一致,在此就不赘述了。

    我的源码地址:http://download.csdn.net/detail/lovecluo/5173334

  • 相关阅读:
    node.js 安装后怎么打开 node.js 命令框
    thinkPHP5 where多条件查询
    网站title中的图标
    第一次写博客
    Solution to copy paste not working in Remote Desktop
    The operation could not be completed. (Microsoft.Dynamics.BusinessConnectorNet)
    The package failed to load due to error 0xC0011008
    VS2013常用快捷键
    微软Dynamics AX的三层架构
    怎样在TFS(Team Foundation Server)中链接团队项目
  • 原文地址:https://www.cnblogs.com/eustoma/p/3937081.html
Copyright © 2011-2022 走看看