神奇的椰子 發表於 2019-8-8 15:21:00

Android开发 layer-list开发例子

<h1><span style="color: rgba(0, 128, 128, 1)">前言</span></h1>
<p>  举例一些&nbsp;layer-list&nbsp; 开发实用例子,用于拓展思维</p>
<p>&nbsp;</p>
<h1><span style="color: rgba(0, 128, 128, 1)">底部带线条的正方形背景</span></h1>
<p><strong>方式一</strong></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">layer-list </span><span style="color: rgba(255, 0, 0, 1)">xmlns:android</span><span style="color: rgba(0, 0, 255, 1)">="http://schemas.android.com/apk/res/android"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>

    <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">item</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
      <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">shape</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
            <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">solid </span><span style="color: rgba(255, 0, 0, 1)">android:color</span><span style="color: rgba(0, 0, 255, 1)">="@color/color_blue"</span> <span style="color: rgba(0, 0, 255, 1)">/&gt;</span>
      <span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">shape</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>

    <span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">item</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>

    <span style="color: rgba(0, 128, 0, 1)">&lt;!--</span><span style="color: rgba(0, 128, 0, 1)">注意! item是相反的,蓝色线条应该在上面,黑色背景反而在下面</span><span style="color: rgba(0, 128, 0, 1)">--&gt;</span>
    <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">item </span><span style="color: rgba(255, 0, 0, 1)">android:bottom</span><span style="color: rgba(0, 0, 255, 1)">="30dp"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
      <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">shape </span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
            <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">solid </span><span style="color: rgba(255, 0, 0, 1)">android:color</span><span style="color: rgba(0, 0, 255, 1)">="@color/color_black"</span><span style="color: rgba(0, 0, 255, 1)">/&gt;</span>
      <span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">shape</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
    <span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">item</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>


<span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">layer-list</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span></pre>
</div>
<p>效果图:</p>
<p><img src="https://img2018.cnblogs.com/common/1497956/201912/1497956-20191218202851520-1487952063.png" alt=""></p>
<p><strong>方式二</strong></p>
<p>这种方式本质上是画一个空心矩形,但是使用<strong>关键属性</strong>:&nbsp; android:bottom="0dp"&nbsp;android:left="-31dp"&nbsp;android:right="-31dp"&nbsp;android:top="-31dp"&nbsp; 这四个属性控制四条边是否显示出来</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">&lt;?</span><span style="color: rgba(255, 0, 255, 1)">xml version="1.0" encoding="utf-8"</span><span style="color: rgba(0, 0, 255, 1)">?&gt;</span>
<span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">layer-list </span><span style="color: rgba(255, 0, 0, 1)">xmlns:android</span><span style="color: rgba(0, 0, 255, 1)">="http://schemas.android.com/apk/res/android"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
    <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">item
      </span><span style="color: rgba(255, 0, 0, 1)">android:bottom</span><span style="color: rgba(0, 0, 255, 1)">="0dp"</span><span style="color: rgba(255, 0, 0, 1)">
      android:left</span><span style="color: rgba(0, 0, 255, 1)">="-31dp"</span><span style="color: rgba(255, 0, 0, 1)">
      android:right</span><span style="color: rgba(0, 0, 255, 1)">="-31dp"</span><span style="color: rgba(255, 0, 0, 1)">
      android:top</span><span style="color: rgba(0, 0, 255, 1)">="-31dp"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
      <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">shape</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
            <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">solid </span><span style="color: rgba(255, 0, 0, 1)">android:color</span><span style="color: rgba(0, 0, 255, 1)">="@android:color/holo_blue_bright"</span> <span style="color: rgba(0, 0, 255, 1)">/&gt;</span>
            <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">stroke
                </span><span style="color: rgba(255, 0, 0, 1)">android:width</span><span style="color: rgba(0, 0, 255, 1)">="30dp"</span><span style="color: rgba(255, 0, 0, 1)">
                android:color</span><span style="color: rgba(0, 0, 255, 1)">="#000000"</span> <span style="color: rgba(0, 0, 255, 1)">/&gt;</span>
            <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">padding </span><span style="color: rgba(255, 0, 0, 1)">android:bottom</span><span style="color: rgba(0, 0, 255, 1)">="4dp"</span> <span style="color: rgba(0, 0, 255, 1)">/&gt;</span>
      <span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">shape</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
    <span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">item</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>

<span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">layer-list</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span></pre>
</div>
<p>效果图:</p>
<p><img src="https://img2020.cnblogs.com/blog/1497956/202107/1497956-20210719160228537-444253672.png" alt="" loading="lazy"></p>
<h1><span style="color: rgba(0, 128, 128, 1)">渐变色边框</span></h1>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">&lt;?</span><span style="color: rgba(255, 0, 255, 1)">xml version="1.0" encoding="utf-8"</span><span style="color: rgba(0, 0, 255, 1)">?&gt;</span>
<span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">layer-list </span><span style="color: rgba(255, 0, 0, 1)">xmlns:android</span><span style="color: rgba(0, 0, 255, 1)">="http://schemas.android.com/apk/res/android"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
    <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">item</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
      <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">shape </span><span style="color: rgba(255, 0, 0, 1)">android:shape</span><span style="color: rgba(0, 0, 255, 1)">="rectangle"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
            <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">gradient
                </span><span style="color: rgba(255, 0, 0, 1)">android:angle</span><span style="color: rgba(0, 0, 255, 1)">="270"</span><span style="color: rgba(255, 0, 0, 1)">
                android:startColor</span><span style="color: rgba(0, 0, 255, 1)">="#FBE650"</span><span style="color: rgba(255, 0, 0, 1)">
                android:endColor</span><span style="color: rgba(0, 0, 255, 1)">="#FFC215"</span> <span style="color: rgba(0, 0, 255, 1)">/&gt;</span>
            <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">corners </span><span style="color: rgba(255, 0, 0, 1)">android:radius</span><span style="color: rgba(0, 0, 255, 1)">="64dp"</span> <span style="color: rgba(0, 0, 255, 1)">/&gt;</span>
      <span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">shape</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
    <span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">item</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
    <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">item
      </span><span style="color: rgba(255, 0, 0, 1)">android:bottom</span><span style="color: rgba(0, 0, 255, 1)">="4dp"</span><span style="color: rgba(255, 0, 0, 1)">
      android:left</span><span style="color: rgba(0, 0, 255, 1)">="4dp"</span><span style="color: rgba(255, 0, 0, 1)">
      android:right</span><span style="color: rgba(0, 0, 255, 1)">="4dp"</span><span style="color: rgba(255, 0, 0, 1)">
      android:top</span><span style="color: rgba(0, 0, 255, 1)">="4dp"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
      <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">shape </span><span style="color: rgba(255, 0, 0, 1)">android:shape</span><span style="color: rgba(0, 0, 255, 1)">="rectangle"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
            <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">solid </span><span style="color: rgba(255, 0, 0, 1)">android:color</span><span style="color: rgba(0, 0, 255, 1)">="@android:color/white"</span> <span style="color: rgba(0, 0, 255, 1)">/&gt;</span>
            <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">corners </span><span style="color: rgba(255, 0, 0, 1)">android:radius</span><span style="color: rgba(0, 0, 255, 1)">="64dp"</span> <span style="color: rgba(0, 0, 255, 1)">/&gt;</span>
      <span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">shape</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
    <span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">item</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>

<span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">layer-list</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span></pre>
</div>
<p>效果图</p>
<p><img src="https://img2022.cnblogs.com/blog/1497956/202204/1497956-20220424111457898-1629330183.png" alt="" loading="lazy"></p>
<h1><span style="color: rgba(0, 128, 128, 1)">实现竖虚线</span></h1>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">&lt;?</span><span style="color: rgba(255, 0, 255, 1)">xml version="1.0" encoding="utf-8"</span><span style="color: rgba(0, 0, 255, 1)">?&gt;</span>
<span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">layer-list </span><span style="color: rgba(255, 0, 0, 1)">xmlns:android</span><span style="color: rgba(0, 0, 255, 1)">="http://schemas.android.com/apk/res/android"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
    <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">item
      </span><span style="color: rgba(255, 0, 0, 1)">android:left</span><span style="color: rgba(0, 0, 255, 1)">="-600dp"</span><span style="color: rgba(255, 0, 0, 1)">
      android:right</span><span style="color: rgba(0, 0, 255, 1)">="-600dp"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
      <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">rotate
            </span><span style="color: rgba(255, 0, 0, 1)">android:fromDegrees</span><span style="color: rgba(0, 0, 255, 1)">="90"</span><span style="color: rgba(255, 0, 0, 1)">
            android:visible</span><span style="color: rgba(0, 0, 255, 1)">="true"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
            <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">shape </span><span style="color: rgba(255, 0, 0, 1)">android:shape</span><span style="color: rgba(0, 0, 255, 1)">="line"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
                <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">stroke
                  </span><span style="color: rgba(255, 0, 0, 1)">android:width</span><span style="color: rgba(0, 0, 255, 1)">="1dp"</span><span style="color: rgba(255, 0, 0, 1)">
                  android:color</span><span style="color: rgba(0, 0, 255, 1)">="@color/public_color_DFDFDF"</span><span style="color: rgba(255, 0, 0, 1)">
                  android:dashWidth</span><span style="color: rgba(0, 0, 255, 1)">="4dp"</span><span style="color: rgba(255, 0, 0, 1)">
                  android:dashGap</span><span style="color: rgba(0, 0, 255, 1)">="2dp"</span> <span style="color: rgba(0, 0, 255, 1)">/&gt;</span>

            <span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">shape</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
      <span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">rotate</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
    <span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">item</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">layer-list</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span></pre>
</div>
<p>&nbsp;</p>
<p>效果图:</p>
<p><img src="https://img2020.cnblogs.com/blog/1497956/202006/1497956-20200619144211823-1035277976.png" alt="" loading="lazy"></p>
<h1><span style="color: rgba(0, 128, 128, 1)">渐变色虚线</span></h1>
<p><span style="color: rgba(0, 0, 0, 1)">黑色为背景色,所以高度超出可以接受,因为无法看到</span></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">&lt;?</span><span style="color: rgba(255, 0, 255, 1)">xml version="1.0" encoding="utf-8"</span><span style="color: rgba(0, 0, 255, 1)">?&gt;</span>
<span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">layer-list </span><span style="color: rgba(255, 0, 0, 1)">xmlns:android</span><span style="color: rgba(0, 0, 255, 1)">="http://schemas.android.com/apk/res/android"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
    <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">item </span><span style="color: rgba(255, 0, 0, 1)">android:height</span><span style="color: rgba(0, 0, 255, 1)">="15dp"</span><span style="color: rgba(255, 0, 0, 1)"> android:top</span><span style="color: rgba(0, 0, 255, 1)">="1dp"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
      <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">shape</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
            <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">gradient
                </span><span style="color: rgba(255, 0, 0, 1)">android:type</span><span style="color: rgba(0, 0, 255, 1)">="linear"</span><span style="color: rgba(255, 0, 0, 1)">
                android:angle</span><span style="color: rgba(0, 0, 255, 1)">="0"</span><span style="color: rgba(255, 0, 0, 1)">
                android:endColor</span><span style="color: rgba(0, 0, 255, 1)">="#002B23"</span><span style="color: rgba(255, 0, 0, 1)">
                android:startColor</span><span style="color: rgba(0, 0, 255, 1)">="#48F3D0"</span> <span style="color: rgba(0, 0, 255, 1)">/&gt;</span>
      <span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">shape</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
    <span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">item</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
    <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">item </span><span style="color: rgba(255, 0, 0, 1)">android:height</span><span style="color: rgba(0, 0, 255, 1)">="21dp"</span><span style="color: rgba(255, 0, 0, 1)"> android:left</span><span style="color: rgba(0, 0, 255, 1)">="5dp"</span><span style="color: rgba(255, 0, 0, 1)"> android:right</span><span style="color: rgba(0, 0, 255, 1)">="4dp"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
      <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">shape </span><span style="color: rgba(255, 0, 0, 1)">android:shape</span><span style="color: rgba(0, 0, 255, 1)">="line"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
            <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">stroke
                </span><span style="color: rgba(255, 0, 0, 1)">android:dashGap</span><span style="color: rgba(0, 0, 255, 1)">="15dp"</span><span style="color: rgba(255, 0, 0, 1)">
                android:dashWidth</span><span style="color: rgba(0, 0, 255, 1)">="20dp"</span><span style="color: rgba(255, 0, 0, 1)">
                android:width</span><span style="color: rgba(0, 0, 255, 1)">="20dp"</span><span style="color: rgba(255, 0, 0, 1)">
                android:color</span><span style="color: rgba(0, 0, 255, 1)">="#141414"</span> <span style="color: rgba(0, 0, 255, 1)">/&gt;</span>
      <span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">shape</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
    <span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">item</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">layer-list</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span></pre>
</div>
<p>效果图:</p>
<p><img src="https://img2022.cnblogs.com/blog/1497956/202206/1497956-20220613145456274-942475962.png" alt="" loading="lazy"></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>End</p>
<p>&nbsp;</p>

</div>
<div id="MySignature" role="contentinfo">
    <div style="text-align: center">
    <p style="color:orange;font-size:16px;" >本文来自博客园,作者:观心静 ,转载请注明原文链接:https://www.cnblogs.com/guanxinjing/p/11321368.html </p>
    <div style="color:orange;font-size:16px;">本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。 </div>
</div><br><br>
来源:https://www.cnblogs.com/guanxinjing/p/11321368.html
頁: [1]
查看完整版本: Android开发 layer-list开发例子