2013-08-04 43 views
1

我想从我正在开发的应用程序发送图像,我有下面的代码,但坚持如何从我的/可绘制文件夹中的文件创建Uri,任何想法? (在这一点上很困惑)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

对不起会问一个单独的问题 –