为什么图像无法共享?

时间:2017-08-19 02:10:03

标签: android android-studio android-imageview android-sharing

这个应用程序中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);
}

}

当我尝试长按其中一个图片与其他应用分享时,但当我选择其中任何一个时,它会显示"分享失败,再试一次" 我的代码plz解决了什么问题。 请更新我可以共享image_source []中存在的所有图像的代码 谢谢

1 个答案:

答案 0 :(得分:0)

您没有通过intent发送任何内容。 您必须将图像放在临时路径中,以便其他应用程序可以访问它并通过intent发送uri路径。 有关详细信息,请查看https://puu.sh/xdRfZ/a4651025d0.png答案。