2016-12-24 2 views
1

Как получить изображение из одной активности в другую, используя ImageView? Вот код, который я попробовал:Как получить изображение из одной активности в другую?

img1.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     Intent intent = new Intent(getBaseContext(),TrialVersion.class); 
     intent.putExtra("design1",R.drawable.design1); 
     startActivity(intent); 
     finish(); 
    } 
}); 
+0

проверки этого http://stackoverflow.com/questions/12908048/passing-bitmap-between-two-activities –

+0

Используйте 'getIntent()' и ' getExtras() '. – AlphaQ

ответ

1

Решение 1:

Преобразование вытяжке в Bitmap и отправить его на другой вид деятельности.

Bitmap bitmap = ((BitmapDrawable)d).getBitmap(); 

Чтобы отправить,

intent.putExtra("Bitmap", bitmap); 

Для Fetch,

Bitmap bitmap = (Bitmap)this.getIntent().getParcelableExtra("Bitmap"); 

Решение 2: (для drawable легкой & света способом)

Отправить целочисленное значение ресурса как:

ГЛАВНОЕ АКТИВНОСТИ

Intent intent = new Intent(this, SecondActivity.class); 
intent.putExtra("resourseInt", R.drawable.image);  
startActivity(intent); 

ВТОРОЙ АКТИВНОСТИ

@Override 
public void onCreate(Bundle bundle) 
{ 
    super.onCreate(bundle); 
    setContentView(R.layout.yot_layout); 
    Bundle extras = getIntent().getExtras(); 
    if (extras == null) { 
     return; 
    } 
    int res = extras.getInt("resourseInt"); 
    ImageView view = (ImageView) findViewById(R.id.something); 
    view.setImageResourse(res); 
} 
+0

расслоение спасибо – paru

+0

@paru, ваш приветствуем - вы можете проверить этот ответ как правильный ответ, а спасибо :) – Saeid

+0

Он отлично работает – paru

0

Нет, это не Android способ иметь дело с изображения. Вы не хотите передавать изображение в другое действие по Intent. Предполагается, что намерение будет использоваться для передачи небольших и простых данных.

Вы можете сохранить изображение на диск и передать путь к другому мероприятию. Или вы можете сохранить изображение в глобальном объекте, таком как Application, а затем получить доступ к этому глобальному объекту из другого Activity.

Второй способ является рискованным, поскольку он может вызвать утечку памяти, если вы не делаете это тщательно и правильно.

Обычно изображение загружается с локального диска или сети. В этом случае вы можете захотеть рассмотреть некоторую библиотеку изображений, такую ​​как Fresco, и использовать кеш для повторного загрузки изображения из другого Activity.

0

Вы можете использовать такой код:

Integer drawable = getIntent().getIntExtra("design1"); 
Смежные вопросы