2016-06-29 7 views
0

У меня есть Framelayout и некоторые TextViews в моем приложении, для которых я загружаю данные с сервера и устанавливаю фон FrameLayout с изображением, загруженным с сервера, используя Picasso и таким же образом настраивая TextView. Но я хочу поделиться им с помощью намерений, и я не могу понять, как это сделать? Нужно ли сначала загружать изображение?Обмен растровым изображением и текстом android

Мой код в 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()); 

Share Button:

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

Метод onBitmapLoaded() дает загруженный точечный рисунок. вы можете передать это намерение оттуда. –

ответ

0

Как Пикассо будет кэшировать изображения, вам не нужно повторно загрузить его в другой вид деятельности (до тех пор, как это делается в одном приложении). Добавьте их в свой код и посмотреть, если это помогает

шаги один и два требуется только в том случае MyPlace локальна для AsyncTask

Шаг 1: сделать AsyncTask Вернуть MyPlace объект

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

Шаг 2 : вернуть объект myPlace из onPostExecute

Шаг 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: получить значение в новой деятельности