2016-05-31 12 views
0

Also egal was ich mache, weder Picasso noch Glide können eine Bilddatei ODER einen Bildstringpfad in eine Bildansicht laden.Wie können Sie Bildstringpfade und Bilddateien mit Picasso und Glide laden?

Ich habe es versucht.

hier ist mein Code:

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


     if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) 
     { 
      Uri selectedImage = data.getData(); 
      String[] filePathColumn = {MediaStore.Images.Media.DATA};//Array size of 1, and we put in a string 
      Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null); 
      cursor.moveToFirst(); 
      int columnIndex = cursor.getColumnIndex(filePathColumn[0]); 
      user_image_path = cursor.getString(columnIndex);//here we have our image path. 
      cursor.close(); 

      File tempFile2 = new File(selectedImage.getPath()); 

      //Toast.makeText(this, "I got your image " + user_image_path, Toast.LENGTH_SHORT).show(); 
      myImageView = (ImageView) findViewById(R.id.cameraActivity_ImageView); 
      //Picasso.with(TakePhotoActivity.this).load(selectedImage).fit().centerCrop().into(myImageView); 
      Glide.with(this).load(new File(selectedImage.getPath())).centerCrop().into(myImageView); 


     } 



    } 

Also habe ich versucht:

1) Picasso.with(TakePhotoActivity.this).load(user_image_path).fit().centerCrop().into(myImageView);

2) Glide.with(this).load(user_image_path).centerCrop().into(myImageView);

3) Picasso.with(TakePhotoActivity.this).load(tempFile2).fit().centerCrop().into(myImageView);

4) Glide.with(this).load(tempFile2).centerCrop().into(myImageView);

5) Picasso.with(TakePhotoActivity.this).load(selectedImage.getPath())).fit().centerCrop().into(myImageView);

6) Glide.with(this).load(selectedImage.getPath())).centerCrop().into(myImageView);

keiner von ihnen arbeitete. Wenn ich das verwende:

Picasso.with(TakePhotoActivity.this).load(selectedImage).fit().centerCrop().into(myImageView); 

Glide.with(this).load(selectedImage).centerCrop().into(myImageView); 

Diese zwei oben arbeiten mit der Variable Uri selectedImage, aber keine der anderen arbeiten. Warum funktionieren die anderen Optionen nicht und wie bekomme ich sie zur Arbeit, weil ich idealerweise mit Bildpfad-Strings arbeiten möchte.

Hoffe ihr könnt helfen! Ich bin total auf dieses hier gestoßen.

Antwort

0
Picasso.with(context).load(data.getData()).into(imageView); 
+0

, die nicht funktionierten, und es sagte immer wieder "wrap uri mit String.valueOf()" – TheQ

+0

Versuchen Sie, diese Picasso.with (Kontext) .load (data.getData()) in (Imageview). – Diveno

+0

ja das data.getData() funktioniert, aber es ist das gleiche wie: Picasso.with (TakePhotoActivity.this) .load (ausgewählteImage) .fit(). CenterCrop(). In (myImageView); Ich möchte wissen, wie man einen String-Pfad oder File-Objekt mit Picasso verwenden oder – TheQ

0

Glide kann über Uri tun, wie der Code unten erwähnt. Aber Sie sollten

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 

, wenn Sie es bereits getan überprüfen, habe ich keine Ahnung.

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (resultCode == RESULT_OK){ 
     if (requestCode == PIC_REQ_CODE){ 
      Glide.with(this).load(data.getData()).into((ImageView)findViewById(R.id.iv_result)); 
     } 
    } 
} 
+0

gleiten ja die data.getData() funktioniert, aber es ist das gleiche wie: Picasso.with (TakePhotoActivity.this) .load (SelectedImage) .fit(). centerCrop(). in (myImageView); Ich möchte wissen, wie man einen String-Pfad oder File-Objekt mit Picasso oder Glide – TheQ

+0

Glide kann direkt Uri verwenden, aber Picasso kann nicht. Wenn Sie uri zum tatsächlichen Teil ändern möchten, lesen Sie bitte diesen Link http: //stackoverflow.com/questions/6935497/android-uploading-image –