Android 实现截图和分享

直接上代码:

xml的布局:

<Button
    android:id="@+id/btn_jp"
    android:layout_marginTop="10dip"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:text="截屏"
    android:textColor="#ff999999" />

<Button
    android:id="@+id/btn_share"
    android:layout_marginTop="10dip"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:text="分享"
    android:textColor="#ff999999" />
activity的方法:

private String imagePath;

//截屏
        btnJp.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
//                image = ScreenShot.shoot(AddressSelecterActivity.this);
                screenshot();
//                Bitmap bitmap = getBitmapByView(scrollView);
//                savePic(bitmap);

            }
        });
        //分享
        btnShare.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (imagePath != null){
                    Intent intent  = new Intent(Intent.ACTION_SEND); // 启动分享发送的属性
                    File file = new File(imagePath);
                    intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));// 分享的内容
                    intent.setType("image/*");// 分享发送的数据类型
                    Intent chooser = Intent.createChooser(intent, "Share screen shot");
                    if(intent.resolveActivity(getPackageManager()) != null){
                        startActivity(chooser);
                    }
                } else {
                    Toast.makeText(AddressSelecterActivity.this, "先截屏,再分享", Toast.LENGTH_SHORT).show();
                }
            }
        });
截取工具:

//截取屏幕的方法
private void screenshot() {
    // 获取屏幕
    View dView = getWindow().getDecorView();
    dView.setDrawingCacheEnabled(true);
    dView.buildDrawingCache();
    Bitmap bmp = dView.getDrawingCache();
    if (bmp != null)
    {
        try {
            // 获取内置SD卡路径
            String sdCardPath = Environment.getExternalStorageDirectory().getPath();
            // 图片文件路径
            imagePath = sdCardPath + File.separator + "screenshot.png";

            File file = new File(imagePath);
            FileOutputStream os = new FileOutputStream(file);
            bmp.compress(Bitmap.CompressFormat.PNG, 100, os);
            os.flush();
            os.close();
        } catch (Exception e) {
        }
    }
}
亲自试过,给大家上图


评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值