我定义了以下颜色资源
<color name="background">#333333</color>
我将其应用于LinearLayout(活动的根视图):
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
...
android:background="@color/background">
我还将其用作“表面/画布”的背景:
private void doDraw(Canvas canvas) {
canvas.drawColor(mContext.getResources().getColor(R.color.background));
问题在于,SurfaceView / Canvas上的颜色比LinearLayout暗。
如果重要,则minSdkVersion: 10
和targetSdkVersion: 19
谢谢。
检查产生的颜色后,我确定LinearLayout正在产生正确的颜色,并且Canvas比应有的颜色深。画布产生的颜色#313131
而不是#333333
问题是SurfaceView
没有用32位颜色渲染。
您将需要得到SurfaceHolder
的SurfaceView
。这可以通过getHolder()
视图本身来实现。
然后只需将其置于32位模式即可:
getHolder().setFormat(PixelFormat.RGBA_8888);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句