关于android原生分享,加载图片资源失败 30C

@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.buttonShare:
Intent intent = new Intent("android.intent.action.SEND");

          String path=getApplication().getFilesDir().getAbsolutePath();
           String name= "buid_img/share.png";
          if(getImageFromAssetsFile(this,"share.png",path) ) {
              intent.setType("image/*");
              intent.putExtra("sms_body", "nihao");
              intent.putExtra("android.intent.extra.TEXT", "你好");
              //toast_test(Uri.fromFile(new File(getFilesDir(), "buid_img/share.png")).toString());

              intent.putExtra("android.intent.extra.STREAM",Uri.fromFile(new File(getApplication().getFilesDir().getAbsoluteFile(), "share.png")));
              //toast_test (Uri.parse(url_path).toString());
              intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
              startActivity(intent.createChooser(intent, getResources().getString(R.string.shareString)));
          }
            break;

    }
}


      public  boolean  getImageFromAssetsFile(Context context,String filleName,String path) {

String packageName=context.getPackageName();
File file=new File(path);
boolean isExist=file.exists();
Bitmap image=null;
if (!isExist){
file.mkdir();

  }
  AssetManager am=context.getAssets();
  try {
      InputStream is=am.open("buid_img/"+filleName);
      image=BitmapFactory.decodeStream(is);
      FileOutputStream out=new FileOutputStream(path+"/"+filleName);
      image.compress( Bitmap.CompressFormat.PNG,100,out);
      out.flush();
      out.close();
      is.close();

  }catch (IOException e){}

return true;
}

主要的问题是怎么把 assets下的图片分享出去 用android的原生分享,一直加载图片资源失败,把图片放在本地别的地方也行。

1个回答

你这个context是哪来的,是不是你上下文对象用的不对,没有拿到assets里面的图片导致加载图片资源失败,用Appliction的context试一试

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问