2013-08-04 2 views
1

Я пытаюсь отправить изображение из приложения, которое я разрабатываю, у меня есть следующий код, но я застрял в том, как создать Uri из файла, который находится в папке/drawable, любые идеи ? (Очень путать в данный момент)Проблемы с образами Android ShareActionProvider

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 

    getMenuInflater().inflate(R.menu.second, menu); 
    MenuItem shareitem = menu.findItem(R.id.menu_item_share); 
    myShareActionProvider = (ShareActionProvider) shareitem.getActionProvider(); 
    myShareActionProvider.setShareIntent(createShareIntent()); 

    ActionBar actionBar = getActionBar(); 
    actionBar.show(); 
    return true; 

} 

public Intent createShareIntent() { 
    image = ??? 
    Uri uri = Uri.fromFile(image); 
    Intent shareIntent = new Intent(Intent.ACTION_SEND); 
    shareIntent.putExtra(Intent.EXTRA_STREAM, uri); 
    shareIntent.setType("image/png"); 
    return shareIntent; 
} 

ответ

1
private Intent createShareIntent() { 
     Intent shareIntent = new Intent(Intent.ACTION_SEND); 
     shareIntent.setType("image/*"); 
     Uri uri = Uri.parse("android.resource://your.package.name/" + R.drawable.image); 
     shareIntent.putExtra(Intent.EXTRA_STREAM, uri); 
     return shareIntent; 
    } 
+0

Большое спасибо, я просто понял это, это решение работает, хотя:) –

0

А дальше мой вопрос, если у меня есть следующие (номер является переменной, которая изменяется в зависимости от кнопки, нажатой). Почему не работает следующая работа?

public Intent createShareIntent() { 
    Intent intent = getIntent(); 
    int number = intent.getIntExtra("BUTTON NUMBER", 1); 
    Uri imageUri = Uri.parse("android.resource://" + getPackageName() + "/"+ R.raw."BUTTON NUMBER"); 
    Intent shareIntent = new Intent(Intent.ACTION_SEND); 
    shareIntent.putExtra(Intent.EXTRA_STREAM, imageUri); 
    shareIntent.setType("image/*"); 
    return shareIntent; 

} 
+1

Это должно быть предложено в качестве отдельного вопроса, поскольку это не ответ, по вашему собственному признанию. – ianhanniballake

+0

Извините, задайте отдельный вопрос –