共享位图图像和文本android

时间:2016-06-29 05:11:17

标签: android picasso socialshare

我在我的应用程序中有一个Framelayout和一些TextViews,我从服务器加载数据,并设置FrameLayout的背景,使用Picasso从服务器加载Image,并以相同的方式设置TextViews。但我想用意图分享它,我无法弄清楚如何做到这一点?我必须先下载Image吗?

AsyncTask中的我的代码:

 Picasso.with(ctx).load(myPlace.getImg()).into(new Target() {
                        @Override
                        public void onPrepareLoad(Drawable arg0) {
                            // TODO Auto-generated method stub

                        }

                        @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
                        @Override
                        public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom arg1) {
                            // TODO Auto-generated method stub
                            pImg.setBackgroundDrawable(new BitmapDrawable(ctx.getResources(), bitmap));


                        }

                        @Override
                        public void onBitmapFailed(Drawable arg0) {
                            // TODO Auto-generated method stub
                            Toast.makeText(ctx, "Failed Loading", Toast.LENGTH_SHORT).show();
                        }
                    });

                    pname.setText(myPlace.getName());
                    pdes.setText(myPlace.getDescription());

分享按钮:

Button shareBtn = (Button) findViewById(R.id.sharebtn);

1 个答案:

答案 0 :(得分:0)

由于Picasso将缓存图像,您不需要在另一个活动中重新下载(只要它在同一个应用程序中)。将这些添加到您的代码中,看看是否有帮助

仅当myPlace是AsyncTask的本地时才需要执行第一步和第二步

第1步:让AsyncTask返回MyPlace对象

private class ClassName extends AsyncTask<..., ..., MyPlace> {
    ...
}

第2步:从onPostExecute

返回myPlace对象

第3步:打包捆绑值并通过意图发送

Intent intent = new Intent(this, NextActivity.class)
Bundle bundle = new Bundle();
bundle.putString(IMG_URL, myPlace.getImg()); // assuming getImg returns string of url
// put name and desc in the same way
intent.addExtra(bundle);
startActivity(intent);

第4步:获取新活动中的值

Intent intent = getIntent();
String url = intent.getExtra().getString(IMG_URL);
// others in the smae way