2017-01-04 4 views
1

Я передаю значения из одной активности в другую деятельность через JSON. Я могу получить строковые значения в следующем действии. Но я не знаю, как отправить мага. Между тем все являются динамическими значениями из массива.Как передать изображение динамически из одной активности в другую деятельность и отобразить ее в представлении изображения через JSON

Отправка так:

jsonobj.put(“Location”, “Chennai”); 

jsonobj.put(“Name”, “test1”); 

Receving like the following: 

location = MainActivity.jsonobj.getString(“Location”); 

name =MainActivity.jsonobj.getString(“Name”); 

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

+0

просто передать имя изображения в виде строки –

+1

см Http: // stackoverflow.com/questions/2091465/how-do-i-pass-data-between-activiti es-on-android – sasikumar

ответ

0

Простой способ передачи данных между двумя действиями, как показано ниже.

FromActivity.java

Intent i = new Intent(FromActivity.this, ToActivity.class); 
i.putExtra("ImageDetails", imgDetails); 
startActivity(i); 
/* Note: imgDetails can be an object with image details of ImageDetails.java class (or) 
you can set as many properties separately using putExtra multiple times. 
If you are using a class, make it serializable. 
*/ 

ToActivity.java

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    ... 
    this.imgDetails = (ImageDetails) getIntent().getSerializableExtra("ImageDetails"); 
    ... 
} 

Благодаря Sriram

1

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

Intent intent = new Intent(getBaseContext(), ActivityB.class); 
intent.putExtra("image_url", imageUrl); 
startActivity(intent) 
+0

это не ответ и должен быть в комментарии – Gattsu

+0

Я надеюсь, что это ответит на его вопрос :-) –

+0

@Sankar ganesh вы можете объяснить, что такое путь с примером –

0

В вашей первой деятельности

Преобразовать ImageView в Bitmap

imageView.buildDrawingCache(); 
Bitmap bitmap = imageView.getDrawingCache(); 

Intent intent = new Intent(this, NewActivity.class); 
intent.putExtra("BitmapImage", bitmap); 

Во второй деятельности

Bitmap bitmap = (Bitmap) intent.getParcelableExtra("BitmapImage"); 

Затем установите растрового изображения в ImageView.

0

Метод 1:

В вашей первой деятельности

Преобразовать ImageView в Bitmap

imageView.buildDrawingCache(); 
Bitmap bitmap = imageView.getDrawingCache(); 

Intent intent = new Intent(this, NewActivity.class); 
intent.putExtra("BitmapImage", bitmap); 

Во второй деятельности

Bitmap bitmap = (Bitmap) intent.getParcelableExtra("BitmapImage"); 

Затем отобразить растровое изображение в ImageView.

Метод 2:

Преобразование растровых изображений в байтовый массив: -

Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher); 
ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream); 
byte[] byteArray = stream.toByteArray(); 

Пасс массив байтов в умыслом: -

Intent intent = new Intent(this, NextActivity.class); 
intent.putExtra("picture", byteArray); 
startActivity(intent); 

Получить массив байтов из Bundle и конвертировать в растр Изображение: -

Bundle extras = getIntent().getExtras(); 
byte[] byteArray = extras.getByteArray("picture"); 

Bitmap bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length); 
ImageView image = (ImageView) findViewById(R.id.imageView1); 

image.setImageBitmap(bmp); 
0

Просто передайте его как строку и возьмите его из следующего действия. Вы сказали, что можете это сделать, поэтому я не объясняю эту часть! Если у вас есть URL-адрес, это строка, поэтому не нужно беспокоиться. Предполагая, что вы отправляете имя изображения без его типа файла, это легкий способ.

Если вы хотите получить ID изображения, которое находится в вытяжке папке с помощью строки вы получили

int id1 = getResources().getIdentifier(StringImageNameWithOutPng, "drawable", getPackageName()); 

Если вы хотите Drawable

Drawable drawable = ContextCompat.getDrawable(YourCurrantActivity.this, id1); 

Теперь использовать это как вы хотите

whateverImageView.setImageDrawable(drawable); 

Подробнее: https://stackoverflow.com/a/11519855/5188159

 Смежные вопросы

  • Нет связанных вопросов^_^