一、写在前面的
在需求上遇到背景设置透明度还是比较常见的,设置透明度有几种方式,但是不同的场景应用下,不同的方式可能会出现一些问题。针对开发过程中的需求做以下总结。
二、先看效果图
图1、
图2、
图3、
图4
介绍:图1、蓝色头部和输入框背景初始状态
图2、点击按钮01,输入框的透明度不起作用,和Title的透明度一样
图3、点击按钮02,背景透明度设置正常,但是可能会对全局的背景有影响
图4、点击按钮03,背景透明度设置正常,具体原因代码注释有提到
三、再加上代码
按钮点击
public voID button01(VIEw vIEw){ // search透明度不起作用 Title.setAlpha(0.2f); search.setAlpha(0.8f); } public voID button02(VIEw vIEw){ // 在布局中多个控件同时使用一个资源的时候,这些控件会共用一个状态 // 如果你改变了一个控件的状态,其他的控件都会接收到相同的通知 Title.getBackground().setAlpha(51); search.getBackground().setAlpha(153); } public voID button03(VIEw vIEw){ // 使用mutate()方法使该控件状态不定,这样不定状态的控件就不会共享自己的状态了 Title.getBackground().mutate().setAlpha(51); search.getBackground().mutate().setAlpha(153); }
布局:
<?xml version="1.0" enCoding="utf-8"?> <linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:orIEntation="vertical" androID:layout_wIDth="match_parent" androID:layout_height="match_parent"> <linearLayout androID:ID="@+ID/ll_Title" androID:layout_wIDth="match_parent" androID:layout_height="80dp" androID:gravity="center" androID:background="#0000ff" androID:orIEntation="horizontal"> <EditText androID:ID="@+ID/et_search" androID:layout_wIDth="200dp" androID:layout_height="60dp" androID:gravity="center" androID:hint="输入框" androID:textcolorHint="#ffffff" androID:background="@drawable/search_Title_bg"/> </linearLayout> <linearLayout androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:layout_margintop="40dp" androID:orIEntation="horizontal"> <button androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="01" androID:onClick="button01"/> <button androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="02" androID:onClick="button02"/> <button androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="03" androID:onClick="button03"/> </linearLayout> </linearLayout>
输入框背景 search_Title_bg
<?xml version="1.0" enCoding="utf-8"?> <shape xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:shape="rectangle"> <solID androID:color="#000000"/> <corners androID:radius="8dp"/> <stroke androID:wIDth="1dp" androID:color="#666666"/> </shape>
四、写在后面的
背景透明度设置比较常见,mutate()方法,可以解决背景透明状态设置异常的现象。
总结以上是内存溢出为你收集整理的Android 背景透明度设置总结全部内容,希望文章能够帮你解决Android 背景透明度设置总结所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)