美文网首页
Record about selector and layer-

Record about selector and layer-

作者: JayZhaoCN | 来源:发表于2017-05-14 20:29 被阅读0次

    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>
    

    实现效果如下:

    正常状态 按下状态

    相关文章

      网友评论

          本文标题:Record about selector and layer-

          本文链接:https://www.haomeiwen.com/subject/smaqxxtx.html