verändern Bild aus der Galerie abgeholt

Arbeite ich in einer app, nehmen Sie ein Bild aus der Galerie und speichern Sie Sie in parse.

Das problem ist, dass, wenn ich wählen Sie ein Bild von der Kamera die Größe des Bildes ist zu groß und braucht einige Sekunden, um zu laden das Bild in einem Image anzeigen. Auch wenn ich das Bild speichern und laden Sie erneut in der app dauert es eine Menge Zeit, weil es download einem großen Bild.

Ich weiß nicht, wie reduziere ich die Größe des Bildes ausgewählt. Ich habe versucht, einige Dinge, aber nichts funktioniert.

Dies ist mein code in diesem moment

public class Datos extends Activity implements OnItemSelectedListener {


private final int SELECT_PHOTO = 1;
private ImageButton imageView;


ParseFile file;
byte [] data;

/*
    public Bitmap getResizedBitmap(Bitmap bm, int newWidth, int newHeight) {
    int width = bm.getWidth();
    int height = bm.getHeight();
    float scaleWidth = ((float) newWidth) /width;
    float scaleHeight = ((float) newHeight) /height;
    //CREATE A MATRIX FOR THE MANIPULATION
    Matrix matrix = new Matrix();
    //RESIZE THE BIT MAP
    matrix.postScale(scaleWidth, scaleHeight);

    //"RECREATE" THE NEW BITMAP
    Bitmap resizedBitmap = Bitmap.createBitmap(
            bm, 0, 0, width, height, matrix, false);
    bm.recycle();
    return resizedBitmap;
    }
*/


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_datos);
    btnClick();

    imageView = (ImageButton) findViewById(R.id.imageButton);


    ImageButton pickImage = (ImageButton) findViewById(R.id.imageButton);
    pickImage.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View view) {
            Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
            photoPickerIntent.setType("image/*");
            //photoPickerIntent.putExtra("outputX", 150);
            //photoPickerIntent.putExtra("outputY", 100);
            //photoPickerIntent.putExtra("aspectX", 1);
            //photoPickerIntent.putExtra("aspectY", 1);
            //photoPickerIntent.putExtra("scale", true);
            startActivityForResult(photoPickerIntent, SELECT_PHOTO);
        }
    });

}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) {
    super.onActivityResult(requestCode, resultCode, imageReturnedIntent);


    switch (requestCode) {
        case SELECT_PHOTO:
            if (resultCode == RESULT_OK) {
                try {
                    Uri imageUri = imageReturnedIntent.getData();
                    InputStream imageStream = getContentResolver().openInputStream(imageUri);
                    Bitmap selectedImage = BitmapFactory.decodeStream(imageStream);
                    imageView.setImageBitmap(selectedImage);

                    ByteArrayOutputStream stream = new ByteArrayOutputStream();
                    selectedImage.compress(Bitmap.CompressFormat.PNG, 100, stream);

                    data = stream.toByteArray();

                    BitmapDrawable bitmapDrawable = new BitmapDrawable(getResources(), selectedImage);
                    imageView.setBackgroundDrawable(bitmapDrawable);

                    BitmapDrawable drawable = (BitmapDrawable) imageView.getDrawable();
                    Bitmap bmp = drawable.getBitmap();
                    Bitmap b = Bitmap.createScaledBitmap(bmp, 120, 120, false);


                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                }


            }

    }
}



@Override
public void onItemSelected(AdapterView<?> parent, View v, int position,
                           long id) {
    //TODO Auto-generated method stub

    Spinner spinner = (Spinner) parent;
    if (spinner.getId() == R.id.telefono) {
        consola = parent.getItemAtPosition(position).toString();
    } else if (spinner.getId() == R.id.provincia) {
        provincia = parent.getItemAtPosition(position).toString();
    }

}

@Override
public void onNothingSelected(AdapterView<?> arg0) {
    //TODO Auto-generated method stub
}


public void btnClick() {

    Button buttonEnviar = (Button) findViewById(R.id.enviar);


    buttonEnviar.setOnClickListener(new OnClickListener() {


        @Override
        public void onClick(View arg0) {

            //Storing image in parse passed in  onclick method of a button with the below code:


            Intent intentDatos = new Intent(Datos.this, Inicio.class);
            startActivity(intentDatos);


            ParseObject testObject = new ParseObject("Musica");

            if (data != null) {

                file = new ParseFile("selected.png", data);
            }

            else {

                data = "".getBytes();
                file = new ParseFile("selected.png", data);
            }

            //file.saveInBackground();


            testObject.put("imagen", file);

            testObject.saveInBackground();




        }
    });


}

Weiß Jemand, wie es zu tun?

Danke für Eure Hilfe,

InformationsquelleAutor Rec | 2015-09-26
Schreibe einen Kommentar