Ecco tutto l'esercizio: trasformata in stringa e poi ritrasformata in bitmap in modo da farla apparire nell'ImageView.
public class MainActivity extends AppCompatActivity {
Bitmap bmp;
ImageView imageView;
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView=(ImageView)findViewById(R.id.imageView);
RelativeLayout.LayoutParams params=new RelativeLayout.LayoutParams(200,200);
params.leftMargin=200;
params.topMargin=0;
imageView.setLayoutParams(params);
button=(Button)findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
Intent intent=new Intent();
intent.setAction(Intent.ACTION_PICK);
intent.setData(Uri.parse("content://media/external/images/media"));
startActivityForResult(intent,0);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
if(resultCode==RESULT_OK){
Cursor crs=getApplicationContext().getContentResolver().query(data.getData(),null,null,null,null);
crs.moveToFirst();
int index=crs.getColumnIndex(MediaStore.Images.ImageColumns.DATA);
String s=crs.getString(index);
bmp= BitmapFactory.decodeFile(s);
ByteArrayOutputStream stream=new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.JPEG,80,stream);
byte[] b=stream.toByteArray();
String strImage= Base64.encodeToString(b,Base64.DEFAULT);
System.out.println(strImage);
byte[] c=Base64.decode(strImage,Base64.DEFAULT);
bmp=BitmapFactory.decodeByteArray(c,0,c.length);
imageView.setImageBitmap(bmp);
}
Nessun commento:
Posta un commento