如何将图像发送到Android中的其他活动
您可以使用intent将byteArray发送到其他活动如何将图像发送到Android中的其他活动,android,android-intent,android-activity,Android,Android Intent,Android Activity,您可以使用intent将byteArray发送到其他活动 import android.content.Intent; import android.graphics.Bitmap; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; i
import android.content.Intent;
import android.graphics.Bitmap;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ImageView;
import java.io.ByteArrayOutputStream;
public class MainActivity extends ActionBarActivity {
Bitmap bitmap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageView i = (ImageView) findViewById(R.id.iv_img);
i.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ByteArrayOutputStream bStream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, bStream);
byte[] byteArray = bStream.toByteArray();
Intent anotherIntent = new Intent(MainActivity.this, anotherActivity.class);
anotherIntent.putExtra("image", R.drawable.img);
startActivity(anotherIntent);
}
});
}
现在,您必须通过另一个活动接收此bytearray
Intent anotherIntent = new Intent(MainActivity.this, anotherActivity.class);
anotherIntent.putExtra("image", byteArray);
startActivity(anotherIntent);
传递映像的路径并使用另一个活动中的路径检索映像。将文件写入文件系统(SD卡)并将路径传递到另一个活动,在下一个活动中读取文件并删除本地路径副本(如果不再需要)。这是一个可绘制文件,您可以在另一个活动中访问它。请尝试base64。对于编码和解码图像。如果它是一个静态资源,你不需要传递任何东西,你可以在另一个活动中访问它,如@Raghunandan所说。如果您的案例不同,您可以尝试使用Parcelable或类似工具序列化此数据,然后将其传递给指定的活动。我不推荐这种方法,因为它效率低下。只需将此图像保存在磁盘上,并像前面所说的那样以字符串形式传递到图像的路径。
Bitmap bmp;
byte[] byteArray = getIntent().getByteArrayExtra("image");
bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
imageview.setImageBitmap(bmp);