大佬教程收集整理的这篇文章主要介绍了android – 在TextView上使用alpha掩码也会删除父视图alpha?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
public class myTextView extends TextView { Paint paint = new Paint(); void init() { paint.setAlpha(0xffffffff); paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.oVERLAY)); paint.setShader( new LinearGradient( 0,getWidth(),getHeight(),0xffffffff,0x00000000,Shader.TileMode.CLAMp)); } void draw(Canvas canvas) { super.draw(canvas); canvas.drawRect(0,paint); } }
它位于此布局中,具有自己的半透明背景:
<View BACkground="#33000000"> <myTextView /> </View>
绘画模式似乎删除了其父视图的半透明背景颜色.我不确定如何阻止textview类中的绘图代码影响其父视图的背景颜色?
谢谢
public class AlphaMaskLayout extends RelativeLayout { private Paint paint; public AlphaMaskLayout(Context context) { super(context); init(context,null,0); } public AlphaMaskLayout(Context context,AttributeSet attrs) { super(context,attrs); init(context,attrs,AttributeSet attrs,int defStylE) { super(context,defStylE); init(context,defStylE); } private void init(Context context,int defStylE) { paint = new Paint(Paint.ANTI_ALIAS_FLAG); paint.setAlpha(0xffffffff); paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_OUT)); setLayerType(LAYER_TYPE_SOFTWARE,null); setWillNotDraw(false); } @Override public void draw(Canvas canvas) { super.draw(canvas); canvas.drawRect(0,paint); } @Override protected void onSizeChanged(int w,int h,int oldw,int oldh) { super.onSizeChanged(w,h,oldw,oldh); paint.setShader( new LinearGradient( 0,w,new int[]{ 0xffffffff,0xfaffffff,0xffffffff},new float[]{0,0.15f,0.3f,0.7f,0.85f,1f},Shader.TileMode.CLAMp)); } }
在xml中:
<your.package.AlphaMaskLayout android:layout_centerInParent="true" android:layout_width="160dp" android:layout_height="wrap_content"> <TextView android:id="@+id/moving_textview" android:layout_centerVertical="true" android:padding="16dp" android:textSize="16sp" android:BACkground="@null" android:textColor="@android:color/white" android:shadowColor="@android:color/black" android:shadowDx="1" android:shadowDy="1" android:shadowRadius="1" android:text="Hello World!!!" android:gravity="center" android:layout_centerInParent="true" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </saulmm.coordinatorexamples.AlphaMaskLayout>
以上是大佬教程为你收集整理的android – 在TextView上使用alpha掩码也会删除父视图alpha?全部内容,希望文章能够帮你解决android – 在TextView上使用alpha掩码也会删除父视图alpha?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。