2013-04-15 7 views
2

Я создал действие с типом mime как изображение, как показано ниже.Получение пути к изображению

<activity android:name=".xxxx"       
      android:launchMode="singleTop" 
      android:excludeFromRecents="true" 
      android:configChanges="orientation|screenSize|keyboardHidden" 
      android:theme="@style/AppTheme">       
      <intent-filter> 
       <action android:name="android.intent.action.SEND" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
       <data android:host="xxxx.xxxx.net"></data> 
       <data android:mimeType="image/*" />    
      </intent-filter> 
      <intent-filter> 
       <action android:name="android.intent.action.CHOOSER" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
       <data android:host="xxxx.xxxx.net"/> 
       <data android:mimeType="image/*" /> 
      </intent-filter> 
      </activity> 

теперь, когда пользователь нажимает на фото и идет в галерею и делает разделить мое приложение приходит туда и, когда он нажимает на нее им удалось запустить вышеупомянутую деятельность ... теперь мой вопрос заключается в том, чтобы получить путь этого образа?

+0

Вы имеете в виду вы хотите путь изображения из галереи ?? ? – AndiM

+0

Для этого вопроса было бы целесообразно предоставить код получателя (и связанный с ним), так как вы говорите, что ваш манифест настроен правильно. –

+0

yup, когда активность запускается, мне нужно получить путь к этому изображению. – user1340801

ответ

0
protected void onActivityResult(int requestCode, int resultCode, 
     Intent resultData) { 
    super.onActivityResult(requestCode, resultCode, resultData); 

    Uri selectedImage = resultData.getData(); 
      String[] filePathColumn = { MediaStore.Images.Media.DATA }; 

      Cursor cursor = getContentResolver().query(selectedImage, 
        filePathColumn, null, null, null); 
      cursor.moveToFirst(); 

      int columnIndex = cursor.getColumnIndex(filePathColumn[0]); 

      uploadImagePath = cursor.getString(columnIndex); 
      bitmapUploadImage = BitmapFactory.decodeFile(uploadImagePath); 
      profileImageView.setImageBitmap(bitmapUploadImage); 
      cursor.close(); 

} 
6

Это даст вам путь в экземпляре Ури в вашем .xxxxActivity

Uri uri = (Uri) getIntent().getExtras().get(Intent.EXTRA_STREAM); 

Затем, если вам нужно, чтобы отобразить изображение в ImageView, используйте:

imageView.setImageURI(uri); 

Дополнительный код:

Если вам также нужен абсолютного путь изображений на устройстве (я нашел это необходимое ограничение, когда я загрузить изображения в Twitter с помощью API TwitPic), то следующий код даст вам абсолютного пути из изображение на устройстве в экземпляре File. Поскольку этот бит неясен в OP, я понял, что дополнительный код не повредит. ;-)

// PASS THE URI INSTANCE FROM THE CODE ABOVE IN THE CONSTRUCTOR 
File file = new File(getRealPathFromURI(uri)); 

И метод getRealPathFromURI(Uri uri):

public String getRealPathFromURI(Uri uri) { 
    Cursor cursor = getContentResolver().query(uri, null, null, null, null); 
    cursor.moveToFirst(); 
    int idx = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA); 
    return cursor.getString(idx); 
} 

И установить изображение, используя экземпляр Файл:

imageView.setImageUri(Uri.fromFile(file)); 
+1

Сделал трюк для меня. Почему это так сложно? – anderspitman

Смежные вопросы