JavascriptProva

domenica 16 aprile 2017

Esercizio su scelta di un'immagine dal contentprovider, trasformazione in stringa e ritrasformazione in bitmap

Prendere un'immagine dalla memoria e trasformarla in stringa.
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