Android View.draw(画布)导致颜色不一致

时间:2017-07-17 10:12:18

标签: android android-layout

我正试图拍摄一个视图,然后在另一个活动中再次使用它。问题是当我这样做时,特定的颜色似乎搞砸了。

附加说明:

  • 图像由灰色基本图像组成,覆盖图像上带有红色或绿色,带有alpha值。

    • 通过使用充气机设置视图,可在父视图中显示该视图。换句话说,我有一个布局,在其中我有一个部分

    <!-- THIS GUY HERE needs to be set to show the correct view.--> <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/my_id" />

然后在活动中我加载正确的视图,如下所示:

imagesLayout = (RelativeLayout) findViewById(R.id.my_id);
LayoutInflater layoutInflater = (LayoutInflater)
            this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
layoutInflater.inflate(getContentViewID(), imagesLayout);

以下是我创建图片的代码:

Bitmap bitmap = Bitmap.createBitmap(view.getMeasuredWidth(),
view.getMeasuredHeight(), Bitmap.Config.ARGB_8888);
Canvas bitmapHolder = new Canvas(bitmap);
view.draw(bitmapHolder);
return bitmap; 

这是结果(较小的图像不正确,较大的图像是视图):

enter image description here

2 个答案:

答案 0 :(得分:0)

您可以保存布局实例并将其另存为位图。

答案 1 :(得分:0)

我找到了解决方案!!事实证明,我需要使用RGB_565,而不是使用ARGB_8888。在本文的帮助下找出它:http://android.nakatome.net/2010/04/bitmap-basics.html

真的希望将来帮助其他人。