2017-01-04 26 views
1

我通過JSON將一個活動的值傳遞給另一個活動。我能夠在下一個活動中接收字符串值。但我不知道發送法師的事。同時,所有數組都是動態值。如何將圖像從一個活動動態傳遞到另一個活動,並通過JSON將其顯示在imageview中

發送類似如下:

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"); 
    ... 
} 

感謝 斯利拉姆

1

您可以將圖像的路徑作爲字符串意圖傳遞並設置在imageview中。

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

這不是答案,應該在評論 – Gattsu

+0

我希望這會回答他的問題:-) –

+0

@Sankar ganesh你能解釋什麼是一個例子的路徑 –

0

在你的第一個活動

轉換的ImageView爲位圖

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爲位圖

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

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

在第二活動

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

然後在ImageView的顯示位圖。從捆綁

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

中獲取字節數組轉換成位圖 - :

方法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(); 

通行證字節數組意圖圖片: -

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如果你想繪製

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

現在用用你得到

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

字符串如你所願

whateverImageView.setImageDrawable(drawable); 

更多:https://stackoverflow.com/a/11519855/5188159

相關問題