繁体   English   中英

获取View的截图并与overflowmenu共享

[英]Take Screenshot of View and Share it with overflowmenu

我想制作我的一张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>

此方法将截取给定视图的屏幕截图:

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执行任何操作。

你可以尝试这个采取特定的布局屏幕截图

   LinearLayout mLinearLayout= (LinearLayout) findViewById(R.id.linearlayout);
            mLinearLayout.setDrawingCacheEnabled(true);
            Bitmap mBitmap = Bitmap.createBitmap(mainLayout.getDrawingCache());
            mLinearLayout.setDrawingCacheEnabled(false);

使用上面的方法可以将布局转换为位图。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM