我想制作我的一张cardview的JPG图像,并希望在选择溢出菜单上分享它。我的XML文件如下所示,我如何制作一个名为@quoteCard的视图的屏幕截图并共享它?我只想要一个我的布局视图不想要全屏截图。感谢
<LinearLayout
android:id="@+id/cardBackground"
android:padding="8dp"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<de.hdodenhof.circleimageview.CircleImageView
android:layout_marginTop="32dp"
android:layout_gravity="center_horizontal"
android:id="@+id/authorImage"
android:layout_width="128dp"
android:layout_height="128dp"
app:civ_border_width="2dp"
app:civ_border_color="#99333333"/>
<TextView
android:layout_weight="1"
android:gravity="center"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:id="@+id/textDetailQuote"
android:text="The price of success is hard"
android:textSize="20sp"
android:textStyle="bold"
android:lineSpacingExtra="5dp"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:layout_marginBottom="16dp"
android:layout_marginRight="8dp"
android:id="@+id/textAuthorSign"
android:layout_gravity="right"
android:text="- ABJ Abdul Kalam"
android:textStyle="italic"
android:textSize="16sp"
android:typeface="serif"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
答案 0 :(得分:0)
此方法将截取给定视图的屏幕截图:
public static Bitmap loadBitmapFromView(View v, int width, int height) {
Bitmap b = Bitmap.createBitmap(width , height, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
v.layout(0, 0, v.getLayoutParams().width, v.getLayoutParams().height);
v.draw(c);
return b;
}
要获得正确的位图,请传递您想要截取其宽度和高度的截图。之后,您可以使用创建的Drawable执行任何操作。
答案 1 :(得分:0)
您可以尝试使用特定的布局屏幕截图
LinearLayout mLinearLayout= (LinearLayout) findViewById(R.id.linearlayout);
mLinearLayout.setDrawingCacheEnabled(true);
Bitmap mBitmap = Bitmap.createBitmap(mainLayout.getDrawingCache());
mLinearLayout.setDrawingCacheEnabled(false);
使用上面的方法可以将布局转换为位图。