2016-07-08 3 views
0

Это мой код:доля Намерение для изображения в андроиде

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case R.id.sharebutton: 
      shareImage(); 
      break; 

     default: 
      return super.onOptionsItemSelected(item); 
    } 
    return true; 
} 

private void shareImage() { 
    Intent share = new Intent(Intent.ACTION_SEND); 

    share.setType("image/*"); 
    String imagePath = Environment.getExternalStorageDirectory() 
      + "/myImage.png"; 

    File imageFileToShare = new File(imagePath); 

    Uri uri = Uri.fromFile(imageFileToShare); 
    share.putExtra(Intent.EXTRA_STREAM, uri); 
    Bitmap bmp = BitmapFactory.decodeFile(imagePath); 

    startActivity(Intent.createChooser(share, "Share")); 
} 

Я пытаюсь разделить мое изображение, но это не обмен. Я не ошибаюсь. Кто-нибудь может сказать, в чем проблема?

+0

если нужен другой код, то позвольте мне know..but пожалуйста решить это .. –

+1

Опубликуйте свой файл Androidmanifest. –

+1

И ошибка LogCat – CaseyB

ответ

0
String pathURL = "File Real Path" 
Uri bmpUri = Uri.fromFile(new File(pathURL)); 
Intent shareIntent = new Intent(Intent.ACTION_SEND); 
    shareIntent.setType("image/*"); 
    shareIntent.putExtra(Intent.EXTRA_STREAM, bmpUri); 
    startActivity(Intent.createChooser(shareIntent, "Share Image")); 
+0

это мой AndroidManifest.xml: –

+0

+0

мое изображение анализируется от json ... поэтому его невозможно получить URL-адрес image-comeback4you –

1

Я не вижу разрешения на чтение в вашем android xml. добавьте это в свой андроид.

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

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

<intent-filter> 
    <action android:name="android.intent.action.SEND" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <data android:mimeType="image/*" /> 
</intent-filter> 

код

final ImageView imgview= (ImageView)findViewById(R.id.feedImage1); 

      Uri bmpUri = getLocalBitmapUri(imgview); 
      if (bmpUri != null) { 
       // Construct a ShareIntent with link to image 
       Intent shareIntent = new Intent(); 
       shareIntent.setAction(Intent.ACTION_SEND); 
       shareIntent.putExtra(Intent.EXTRA_STREAM, bmpUri); 
       shareIntent.setType("image/*"); 
       // Launch sharing dialog for image 
       startActivity(Intent.createChooser(shareIntent, "Share Image"));  
      } else { 
       // ...sharing failed, handle error 
      } 

Если это не работает в вашем случае (нормально работать!), То, возможно, вам нужно использовать локальный файл. Как это:

Uri imageUri = Uri.parse("android.resource://your.package/drawable/fileName"); 

отредактирован раздел

Convert Bitmap в Ури

public Uri getLocalBitmapUri(Bitmap bmp) { 
    Uri bmpUri = null; 
    try { 
     File file = new File(getExternalFilesDir(Environment.DIRECTORY_PICTURES), "share_image_" + System.currentTimeMillis() + ".png"); 
     FileOutputStream out = new FileOutputStream(file); 
     bmp.compress(Bitmap.CompressFormat.PNG, 90, out); 
     out.close(); 
     bmpUri = Uri.fromFile(file); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    return bmpUri; 
} 

Я надеюсь, что это поможет вам

+0

getLocalBitmapUri() не работает –

+0

i m не получает Uri.parse() –

+0

конвертировать bitmap в uri, проверить мои ответы. –

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