2024年Android最新Android图层妙用之layer-list的基本使用介绍,2024年最新阿里面试被拒

结语

网上高级工程师面试相关文章鱼龙混杂,要么一堆内容,要么内容质量太浅, 鉴于此我整理了上述安卓开发高级工程师面试题以及答案。希望帮助大家顺利进阶为高级工程师。
目前我就职于某大厂安卓高级工程师职位,在当下大环境下也想为安卓工程师出一份力,通过我的技术经验整理了面试经常问的题,答案部分是一篇文章或者几篇文章,都是我认真看过并且觉得不错才整理出来。

大家知道高级工程师不会像刚入门那样被问的问题一句话两句话就能表述清楚,所以我通过过滤好文章来帮助大家理解。

1307页字节跳动Android面试真题解析火爆全网,完整版开放下载

现在都说互联网寒冬,其实只要自身技术能力够强,咱们就不怕!我这边专门针对Android开发工程师整理了一套【Android进阶学习视频】、【全套Android面试秘籍】、【Android知识点PDF】。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

<?xml version="1.0" encoding="utf-8"?>
<!--底层的左边距离上层左边3dp, 底层的顶部,距离上层的顶部6dp,如果不做这个控制,底层和上层的左侧和上侧会重合在一起-->

<item android:left="3dp"

      android:top="6dp">

    <shape>

        <solid android:color="#b4b5b6"/>

    </shape>

</item>



<!--上层的右边距离底层的右边3dp, 上层的底部距离底层的底部6dp-->

<item android:bottom="6dp"

      android:right="3dp">

    <shape>

        <solid android:color="#fff"/>

    </shape>

</item>



*   使用 layer-list 图



<TextView

    android:layout_width="match_parent"

    android:layout_height="70dp"

    android:layout_marginTop="10dp"

    android:background="@drawable/shadow"

    android:gravity="center"

    android:text="阴影效果"/> 



#### **3.4 效果4 : 图片层叠**



图片层叠的时候,有两种效果,一种是缩放后层叠,一种是不缩放的层叠。默认是缩放效果。具体效果以及实现代码如下:



**效果图 1) : 带有缩放效果的**  

![这里写图片描述](https://img-blog.csdn.net/20161206112810579)  

具体代码 1):



*   创建 layer-list



<?xml version="1.0" encoding="utf-8"?>
<!--默认缩放-->

<item>

    <bitmap

        android:src="@drawable/ic_launcher"/>

</item>



<item android:left="35dp"

      android:top="35dp">

    <bitmap

        android:src="@drawable/ic_launcher"/>

</item>



<item android:left="70dp"

      android:top="70dp">

    <bitmap

        android:src="@drawable/ic_launcher"/>

</item>



或者也可以使用如下代码,实现缩放的叠加图:



<?xml version="1.0" encoding="utf-8"?>
<!--这种方式拿到的是带有缩放的效果,即便给item 设置了gravity 并且从模拟器上看到的效果是不缩放的,但是真机上依旧是缩放的效果-->

<item android:drawable="@drawable/ic_launcher">

</item>

<item android:drawable="@drawable/ic_launcher"

      android:left="45dp"

      android:top="45dp">

</item>

<item android:drawable="@drawable/ic_launcher"

      android:left="90dp"

      android:top="90dp">

</item>



*   使用 layer-list 图



<ImageView

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:background="@drawable/overlay"

/>



**效果图 2):不带缩放效果的**



注意:

A. 不缩放的时候,必须在 item 节点中使用 bitmap 节点,并给 bitmap 设置 gravity=center ;

B. 虽然在实现缩放效果的时候,可以直接使用 item 中的 drawable属性,但实现不缩放的效果时,如果还用drawable 属性,即便给item 设置了gravity =center ,在真机上的效果依旧是缩放的。(但模拟器是不缩放的)




![这里写图片描述](https://img-blog.csdn.net/20161206113330851)  

**具体代码 2):**



*   创建 layer-list



<?xml version="1.0" encoding="utf-8"?>
<!--不缩放-->

<item>

    <bitmap

        android:gravity="center"

        android:src="@drawable/ic_launcher"/>

</item>



<item android:left="35dp"

      android:top="35dp">

    <bitmap android:gravity="center"

            android:src="@drawable/ic_launcher"/>

</item>



<item android:left="70dp"

      android:top="70dp">

    <bitmap android:gravity="center"

            android:src="@drawable/ic_launcher"/>

</item>



*   使用 layer-list 图



<ImageView

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:background="@drawable/overlay"

/>



#### **3.5 效果5 :叠加旋转**



**效果图:**  

![这里写图片描述](https://img-blog.csdn.net/20161206124521242)  

**具体代码:**



*   创建 layer-list



<?xml version="1.0" encoding="utf-8"?>
<item>

    <rotate android:fromDegrees="-10" android:pivotX="0"

            android:pivotY="0">

        <bitmap android:src="@drawable/decibel_blue_background"/>

    </rotate>

</item>

<item>

    <rotate android:fromDegrees="10" android:pivotX="0"

            android:pivotY="0">

        <bitmap android:src="@drawable/decibel_orange_background"/>

    </rotate>

</item>

<item>

    <rotate android:fromDegrees="30" android:pivotX="0"

            android:pivotY="0">

        <bitmap android:src="@drawable/decibel_red_background"/>

    </rotate>

</item>



旋转的时候,只需要给出 起始的角度( fromdegress )即可。



*   使用 layer-list 图



<!--图片叠加并带旋转效果-->

<ImageView

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:background="@drawable/rotate"/>



### **4\. layer-list 的扩展使用**



#### **4.1.实现选择器的效果**



主要使用组件:RadioGroup Selector layer-list  

**1). 效果图:**  

![这里写图片描述](https://img-blog.csdn.net/20161206161512742)



**2). 具体代码**  

定义 selector 选择器  

selector 的 item 节点中,直接嵌套 layer-list  

当然也可以先写好layer-list ,然后再去引用



<?xml version="1.0" encoding="utf-8"?>
<!--被选中时是4dp的底部边线-->

<item android:state_checked="true">

    <layer-list>

        <item>

            <shape>

                <solid android:color="#f00"/>

            </shape>

        </item>

        <item android:bottom="4dp">

            <shape>

                <solid android:color="#fff"/>

            </shape>

        </item>

    </layer-list>

</item>



<!--未被选中的是2dp的底部边线-->

<item>

    <layer-list>

        <item>

            <shape>

                <solid android:color="#f00"/>

            </shape>

        </item>

        <item android:bottom="2dp">

            <shape>

                <solid android:color="#fff"/>

            </shape>

        </item>

    </layer-list>

</item>



注意:  

在上面的代码中,由于并没有具体的shape ,所以可以省略shape , 直接用 color , 简化后的代码如下:



<?xml version="1.0" encoding="utf-8"?>
<!--被选中时是4dp的底部边线-->

<item android:state_checked="true">

    <layer-list>

        <item>

            <color android:color="#f00"/>

        </item>

        <item android:bottom="5dp">

            <color android:color="#fff"/>

        </item>

    </layer-list>

</item>



<!--未被选中的是2dp的底部边线-->

<item>

    <layer-list>

        <item>

            <color android:color="#f00"/>

        </item>

        <item android:bottom="2dp">

            <color android:color="#fff"/>

        </item>

    </layer-list>

</item>



*   使用selector



<LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”

最后笔者收集整理了一份Flutter高级入门进阶资料PDF

以下是资料目录和内容部分截图



里面包括详细的知识点讲解分析,带你一个星期入门Flutter。还有130个进阶学习项目实战视频教程,让你秒变大前端。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"



#### 最后笔者收集整理了一份Flutter高级入门进阶资料PDF

以下是资料目录和内容部分截图

> [外链图片转存中...(img-yMRyHUih-1715656756035)]
> [外链图片转存中...(img-i3Cc6XFX-1715656756036)]
> 里面包括详细的知识点讲解分析,带你一个星期入门Flutter。还有130个进阶学习项目实战视频教程,让你秒变大前端。



> [外链图片转存中...(img-zpTUdcJc-1715656756036)]



**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化学习资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618156601)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值