我在Activity中显示图像,并希望通过Intent共享该图像。出现错误:不支持图像格式,无论是jpg还是png。
也许我的代码有错误:
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;
}
3条答案
按热度按时间66bbxpm51#
对于PNG,请尝试
share.setType("image/png");
;对于JPEG,请尝试share.setType("image/jpg");
。2admgd592#
试试这个:-
f8rj6qna3#
我尝试过几种方法,但是没有一种方法对我有效,而且操作的部分也不清楚,所以这里是我用来共享图像或视频类型内容的方法,以防有数据的绝对路径。这也适用于png和jpg。
在androidmanifest.xml中添加以下行:
在资源目录res中,创建一个名为xml的新文件夹。将一个新文件放入其中,该文件的名称与您在manifest.xml元数据部分使用的名称相同,在本例中为provider_paths.xml:
android:资源="@xml/提供者路径”
将以下内容放入其中:
在您希望使用share函数的活动中,放置以下代码,其中path是包含内容绝对路径的字符串变量,而“com.example.fileprovider”是基于上面创建的新xml文件的其中一行的Fileprovider的author值,如下所示:
文件提供者”
通过这个可以很容易地共享设备上的内容和路径。权限和资源值在manifest.xml中是至关重要的。当然可以更改它们,但要确保每次都要修改它们。
资源:
Android Share Intent Image Sharing not working Except WhatsApp
https://www.geeksforgeeks.org/how-to-share-image-from-url-with-intent-in-android/
https://developer.android.com/training/sharing/send