Android适配-view设置背景闪烁

Android适配-view设置背景闪烁,第1张

做了一个需求,右滑关闭activity,需要把activity的主题设置为透明,才能在滑动时看到下面的页面,否则看到的是activity默认的灰色背景

但是背景透明后,软键盘的d出,会有闪烁的现象,闪现的是下面activity的界面,体验不好。解决办法是滑动的时候,才将view背景设置为透明,这样可以保障滑动的效果,又能保证软键盘d出时的效果。

但由此也引出Android系统新老版本不兼容的2个地方。

1.部分手机activity如果初始化时是非透明的,动态修改为透明的,没效果。

2.Android6.0以下,activity是透明的,即便里面有view不是透明的,设置该activity背景颜色时,会闪烁。

一张背景图从右到左缓慢移动,无限循环!

1.先把图片读取出来修改尺寸(以屏幕高度为标准缩放图片大小)。

2.设置属性动画ValueAnimator.ofInt(0, mBitmapW) //mBitmapW是图片修改过后宽度。

3.通过mValue裁减图片进行绘制。

既然是继承View的 可以在XML布局里面直接设置背景。

<com.android.widget.MyView

android:id="@+id/myview"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:background="@drawable/background" //设置背景

android:layout_marginTop="11px"

android:layout_marginLeft="506px"/>

如果想在代码里面设置背景,结合上面的XML文件:

private MyView mView

mView = (MyView) findViewById(R.id.myview)

mView.setBackgroundResource(R.drawable.background)

如果想在自定义控件的代码中直接设置背景,需要先在构造函数中获取背景图片,然后在 onDraw中画背景图片。

mBackGround = ((BitmapDrawable) this.getResources().getDrawable(R.drawable.background)).getBitmap()//获取背景图片

Paint mPaint = new Paint()

canvas.drawBitmap(mBackGround, 0, 0, mPaint)//画背景图片


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11163652.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存