2015-01-21 7 views
0

Я показываю изображение в своей деятельности и хочу поделиться им с помощью намерения. Я получаю ошибку: Формат изображения не поддерживается, независимо от того, является ли это jpg или png.Share image intent - формат изображения не поддерживается

Может быть, есть ошибка в моем коде:

public class StartActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_second); 

Intent myIntent = getIntent(); 
int image = myIntent.getExtras().getInt("image"); 

ImageView imagefull = (ImageView)findViewById(R.id.imageView1); 
imagefull.setImageResource(image); 


Button share = (Button) findViewById (R.id.buttonshare); 
share.setOnClickListener(new OnClickListener() 

{ 
    @Override 
    public void onClick(View arg0) { 

    Intent share = new Intent(Intent.ACTION_SEND); 

    share.setType("image/*"); 

    Uri uri = Uri.fromFile(new File(getFilesDir(), "facebook.png")); 
    share.putExtra(Intent.EXTRA_STREAM, uri); 
    startActivity(Intent.createChooser(share, "Share Image!")); 

    } }); 

} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 
+0

Изменить 'share.setType ("изображение/*");' 'к share.setType ("изображение/PNG");' 'или использовать android.webkit.MimeTypeMap .getSingleton(). getMimeTypeFromExtension (extention) 'вместо –

+0

Не работает для Whatsapp. – Michal

ответ

0

Попробуйте share.setType("image/png"); для PNG и share.setType("image/jpg"); для JPEG.

+0

Не работает для Whatsapp. – Michal

0

Попробуйте это: -

shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); 
shareIntent.setType("image/*"); 

//set your message 
shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, msgText); 
String imagePath = Environment.getExternalStorageDirectory() + File.separator + "image_name.jpg"; 
File imageFileToShare = new File(imagePath); 
Uri uri = Uri.fromFile(imageFileToShare); 
shareIntent.putExtra(Intent.EXTRA_STREAM, uri); 
Uri uri = Uri.fromFile(imageFileToShare); 
sharingIntent.putExtra(Intent.EXTRA_STREAM, uri); 
Смежные вопросы