Record about selector and layer-list

layerlist

1.多张图片可以叠加在一起做为某个ImageView的背景。

可以在xml或代码中实现:

xml中实现:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@mipmap/ic_launcher"/>
    <item
        android:drawable="@mipmap/ic_launcher"
        android:left="10dp"
        android:top="10dp"
        android:right="10dp"
        android:bottom="10dp"
        />

    <!--
    android:left
    android:top
    android:right
    android:bottom
    这四个属性表示四个方向上的padding
    -->
</layer-list>

效果如下:

xml实现效果
在代码中实现:
    private void practiceLayerList() {
        ImageView img = (ImageView) findViewById(R.id.layer_list_img);

        Bitmap bm = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);
        Drawable[] drawables = new Drawable[3];
        drawables[0] = new PaintDrawable(Color.BLACK);
        drawables[1] = new PaintDrawable(Color.GREEN);
        drawables[2] = new BitmapDrawable(getResources(), bm);

        LayerDrawable layerDrawable = new LayerDrawable(drawables);
        layerDrawable.setLayerInset(1, 20, 20, 20, 20);
        layerDrawable.setLayerInset(2, 40, 40, 40, 40);

        /*
        * layerlist可以在xml中实现,也可以在代码中设置
        * 代码中使用layerDrawable
        * layerDrawble.setLayerInset()
        * 有五个int类型的参数,第一个表示drawable数组的下标
        * 剩下四个分表表示left,top,right,bottom方向向内的padding
        * */

        img.setBackground(layerDrawable);
    }

关于selector的记录:

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

    <item android:state_pressed="true">

        <shape android:shape="rectangle">

            <stroke android:width="1dp"
                    android:color="@color/colorAccent"/>

            <solid
                android:color="@color/colorPrimary"/>

            <gradient android:startColor="@color/colorAccent"
                      android:centerColor="@color/colorPrimaryDark"
                      android:endColor="@color/colorPrimary"
                      android:angle="180"
                      />

            <!--
            android:angle
            0表示从左到右
            90表示从下到上
            180表示从右到左
            -->

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

        </shape>

    </item>

    <item>

        <shape android:shape="rectangle">

            <stroke android:width="1dp"
                    android:color="@color/colorPrimary"/>

            <solid android:color="@color/colorAccent"/>

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

        </shape>

    </item>

</selector>

实现效果如下:

正常状态
按下状态
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,166评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,801评论 4 61
  • 昨天半夜发现的他,趴在路边头垂着,旁边一位姑娘在试图劝说他什么。应该是后腿站不起来了,他趴在自行车的缝隙间,不吃...
    mercury_stellar阅读 3,996评论 0 0
  • 前几天收拾书架,翻到了几年前上软件课的笔记,其中有一页潦草记了把彩图转成黑白的12种方法。没错,就是辣么多! 一张...
    vulcanmoon阅读 10,732评论 0 3
  • 不知道你身上有没有发生过这种情况,平时总在你眼前晃的东西你不需要,但要找的时候它却好像是与你追迷藏一样,就是找不到...
    分类收纳术阅读 5,870评论 3 9

友情链接更多精彩内容