我的相对布局如下
<RelativeLayout
android:id="@+id/screen_shot_relative_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/white">
<include layout="@layout/news_content_layout" />
</RelativeLayout>
news_content_layout.xml
如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content">
//some elements of code
<TextView
android:id="@+id/news_content"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<RelativeLayout
android:id="@+id/share_footer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:layout_centerHorizontal="true"
android:layout_gravity="center"
android:visibility="gone"
android:layout_below="@id/news_content">
//Some more elements
</RelativeLayout>
</RelativeLayout>
我想做什么?
我正在尝试将screen_shot_relative_layout
(相对布局)转换为位图。
在将布局转换为位图之前,我将GONE
share_footer
的可见度更改为VISIBLE
。
问题:
位图没有share_footer
。但是我可以在UI(在设备屏幕上)看到它
我的java代码:
RelativeLayout mShareScreenShotRelativeLayout = itemView.findViewById(R.id.screen_shot_relative_layout);
RelativeLayout mShareFooterRelativeLayout = itemView.findViewById(R.id.share_footer);
点击Share buttom后:
//Making footer_layout visible
mShareFooterRelativeLayout.setVisibility(View.VISIBLE);
Bitmap bitmap = null;
Uri bitmapUri = null;
bitmap = Utils.viewToBitmap(mShareScreenShotRelativeLayout); //This convets the Layout to image
String bitmapPath = MediaStore.Images.Media.insertImage(mContext.getContentResolver(), bitmap, String.valueOf(articleId), null);
//Sharing the content
Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
sharingIntent.setType("image/jpeg");
sharingIntent.putExtra(Intent.EXTRA_STREAM, bitmapUri);
sharingIntent.putExtra(Intent.EXTRA_TEXT, "Some Text");
sharingIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
mContext.startActivity(Intent.createChooser(sharingIntent, "Share via"))
//Making footer_layout visibility GONE
mShareFooterRelativeLayout.setVisibility(View.GONE);
bitmap
没有share_footer
。请告诉我
bitmapUri = Uri.parse(bitmapPath);
我不确定为什么会这样。页脚是父级的一部分,只有可见性已消失。请帮我理解什么是错的?
编辑:我100%确定刷新视图有一些延迟。直到View生成了Bitmap才会刷新。
现在问题是如何解决这个问题?
答案 0 :(得分:0)
使用这种方式
dtproductdetails
并以这种方式打电话
public Bitmap viewToBitmap(View view) {
Bitmap bitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
view.draw(canvas);
return bitmap;
}