Android实现分享一个广告页面给好友

    以往APP分享的都是将下载链接以文本方式分享给好友,但是我们如果想要添加一些广告元素进去,文本就难以抓住人的眼球。最近我就接了这样一个需求,把分享界面以图片的形式分享给好友。如果你恰好也有类似的需求,那么这篇文章可以帮到你!

效果图:

    开始我想是否可以借助系统的截屏功能,然后对图片进行裁剪。把手机的状态栏部分截取掉。但是我希望去掉我布局中的一些控件,比如分享按钮。

我的分享界面:

后来就有了这样一个思路:用ViewGroup生成一张图片,具体的实现如下:

        1.在XML布局中,把相关视图用一个ViewGroup包裹

        2.将ViewGroup转化为Bitmap

    /**把ViewGroup转化为一个bitmap*/
    public static Bitmap convertViewToBitmap(View view){
        view.setDrawingCacheEnabled(true);
        view.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),
                View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
        view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());
        view.buildDrawingCache();
        Bitmap bitmap = view.getDrawingCache();
        return bitmap;
    }

        3.将Bitmap存为图片文件

   /**保存图片到本地*/
    private void savaBitmap() {
        File appDir = new File(Environment.getExternalStorageDirectory(), "erweima");
        if (!appDir.exists()) {
            appDir.mkdir();
        }
        fileName = System.currentTimeMillis() + ".jpg";
        file = new File(appDir, fileName);
        try {
            FileOutputStream fos = new FileOutputStream(file);
            llBitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
            fos.flush();
            fos.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

        4. 将图片文件分享给好友

   /** android 自带分享图片功能*/
    private void share() {
        Intent intent = new Intent(Intent.ACTION_SEND);
        intent.setType("image/*");
        intent.putExtra(Intent.EXTRA_SUBJECT, "分享");
        intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(Intent.createChooser(intent, ShareActivity.this.getTitle()));
        ShareActivity.this.overridePendingTransition(R.anim.share_in_from_bottom, 0);
    }

最后是我分享出去的图片的效果:




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值