为什么无法共享图像?

Why the Image can't be shared?

在此应用程序中,viewPager 包含一些图像,我希望将其共享但在共享时显示错误 我在这里分享我的代码 这是 Mainactivity.java 文件

package com.adixpc.hp.physicsfacts;



import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;


public class Main2Activity extends AppCompatActivity {
ViewPager viewPager;
scrAdapter adapter;


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


    viewPager = (ViewPager)findViewById(R.id.vp);

    adapter = new scrAdapter(this);

    viewPager.setAdapter(adapter);
      }


   }

这个是 srcAdapater.java 文件

package com.adixpc.hp.physicsfacts;


import android.content.Context;
import android.content.Intent;
import android.support.v4.view.PagerAdapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;

import uk.co.senab.photoview.PhotoViewAttacher;

import static com.adixpc.hp.physicsfacts.R.id.imageView;


public class scrAdapter extends PagerAdapter {



private int image_source [] = {R.drawable.aa,
        R.drawable.bb,
        R.drawable.cc,
        R.drawable.dd,
        R.drawable.ee,
        R.drawable.ff,
        R.drawable.gg,
        R.drawable.a,R.drawable.b,R.drawable.c,R.drawable.d,R.drawable.e,R.drawable.f,R.drawable.g,R.drawable.h,R.drawable.i,R.drawable.j,R.drawable.k,R.drawable.l,R.drawable.m,R.drawable.n,R.drawable.o,R.drawable.p,
        R.drawable.q,R.drawable.r,R.drawable.s,R.drawable.t,R.drawable.u,
        R.drawable.v,R.drawable.w,R.drawable.x,R.drawable.y,
        R.drawable.z

};

private Context ctx;
private LayoutInflater layoutInflater;


public scrAdapter (Context ctx){
    this.ctx= ctx;

}

@Override
public int getCount() {
    return image_source.length;
}

@Override
public boolean isViewFromObject(View view, Object object) {
    return (view==(LinearLayout)object);
}

@Override
public Object instantiateItem(ViewGroup container, int position) {
    layoutInflater = (LayoutInflater)ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View item = layoutInflater.inflate(R.layout.scrshots,container,false);
    ImageView img = item.findViewById(imageView);
    img.setImageResource(image_source[position]);
    img.setLongClickable(true);
    img.setOnLongClickListener(new View.OnLongClickListener() {
        @Override
        public boolean onLongClick(View view) {
            Intent intent = new Intent();
            intent.setAction(Intent.ACTION_SEND);
            intent.putExtra(Intent.EXTRA_STREAM,"");
            intent.setType("image/jpeg");
            ctx.startActivity(intent);
            return true;
        }
    });

    container.addView(item);
    return item;


}

@Override
public void destroyItem(ViewGroup container, int position, Object object) {
    container.removeView((LinearLayout)object);
}

}

当我尝试长按其中一张图片与其他应用程序共享时,但当我选择其中任何一个时,它就会显示 "sharing failed,try again" 我的代码有什么问题请解决。 请更新我可以分享 image_source[] 中存在的所有图像的代码 谢谢

您没有通过 intent 发送任何内容。 您必须将图像放在临时路径中,以便其他应用程序可以访问它并通过意图发送 uri 路径。 查看 this 答案了解详情。