Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android “如何解决此类型错误”;文件格式不受支持";向whatsapp共享图像时?_Android_Image_Whatsapp - Fatal编程技术网

Android “如何解决此类型错误”;文件格式不受支持";向whatsapp共享图像时?

Android “如何解决此类型错误”;文件格式不受支持";向whatsapp共享图像时?,android,image,whatsapp,Android,Image,Whatsapp,我正在实现一个应用程序,在单击“共享按钮”时将图像共享到whatsapp,根据这个项目,我创建了一个扩展Baseadapter的Imageadapter和一个用于共享图像的活动。因此,当我单击“共享按钮”时,它应该生成“文件格式不受支持” ImageAdapter.java public class ImageAdapter extends BaseAdapter { private Context mContext; public int getCount() { return mT

我正在实现一个应用程序,在单击“共享按钮”时将图像共享到whatsapp,根据这个项目,我创建了一个扩展Baseadapter的Imageadapter和一个用于共享图像的活动。因此,当我单击“共享按钮”时,它应该生成“文件格式不受支持”

ImageAdapter.java

public class ImageAdapter extends BaseAdapter {

private Context mContext;
public int getCount() {
    return mThumbIds.length;
}
public Object getItem(int position) {
    return mThumbIds[position];
}
public long getItemId(int position) {
    return 0;
}
public ImageAdapter(Context c) {
    mContext = c;
}

public View getView(final int position, View convertView, ViewGroup parent) {
    ImageView imageView;
    if (convertView == null){
        imageView = new ImageView(mContext);
        imageView.setLayoutParams(new GridView.LayoutParams(80, 80));
        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
        imageView.setPadding(15, 15, 15, 15);
        imageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                Intent intent = new Intent(mContext,FullScreenImage.class);
                intent.putExtra("imageID", mThumbIds[position]);
                mContext.startActivity(intent);
            }
        });


    }
    else{
        imageView = (ImageView) convertView;
    }
    imageView.setImageResource(mThumbIds[position]);
    return imageView;
}

private Integer[] mThumbIds = {
        R.mipmap.h1, R.mipmap.h2,
        R.mipmap.h3, R.mipmap.h4,
        R.mipmap.h5,R.mipmap.h6,
        R.mipmap.h7,R.mipmap.h8
        ,R.mipmap.h9,R.mipmap.h10
        ,R.mipmap.h11,R.mipmap.h12
        ,R.mipmap.h13,R.mipmap.h14
        ,R.mipmap.h15
};
}
public class FullScreenImage extends Activity {


ImageView imageView,imgBack;
Button setWallpaper,share;
Context activity;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.layout_fullscreen_image);

    //Get image fro Image adapter
    Bundle bdl = getIntent().getExtras();
    final int imageRes = bdl.getInt("imageID");

    //Setting up imageview
    imageView = (ImageView)findViewById(R.id.imgDisplay);

    //Share image to whatsapp
    share = (Button)findViewById(R.id.btnShare);
    share.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            Uri imageUri = Uri.parse("android.resource://com.v1.sensoft.halloween/mipmap"+imageRes);
            Intent intent = new Intent(Intent.ACTION_SEND);
            intent.setType("image/*");

            intent.putExtra(Intent.EXTRA_STREAM, imageUri);
            startActivity(Intent.createChooser(intent , "Share"));
        }

    });

    //Setting up wallpaper
    ImageView image = (ImageView) findViewById(R.id.imgDisplay);
    image.setImageResource(imageRes);

    setWallpaper = (Button)findViewById(R.id.setWall);
    setWallpaper.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            WallpaperManager myWallpaperManager
                    = WallpaperManager.getInstance(getApplicationContext());
            try {
                myWallpaperManager.setResource(imageRes);
                Context context = getApplicationContext();
                // Create layout inflator object to inflate toast.xml file
                LayoutInflater inflater = getLayoutInflater();

                // Call toast.xml file for toast layout
                View toastRoot = inflater.inflate(R.layout.layout_toast2, null);

                Toast toast = new Toast(context);

                // Set layout to toast
                toast.setView(toastRoot);
                toast.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL,
                        0,0 );
                toast.setDuration(Toast.LENGTH_LONG);
                toast.show();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    });


    //Header back button...for Mainactivity.java
    imgBack = (ImageView)findViewById(R.id.imgBack);
    imgBack.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            Intent intentLog9 = new Intent(getApplicationContext(), MainActivity.class);
            startActivity(intentLog9);
            finish();
        }
    });

}
}
FullScreenImage.java

public class ImageAdapter extends BaseAdapter {

private Context mContext;
public int getCount() {
    return mThumbIds.length;
}
public Object getItem(int position) {
    return mThumbIds[position];
}
public long getItemId(int position) {
    return 0;
}
public ImageAdapter(Context c) {
    mContext = c;
}

public View getView(final int position, View convertView, ViewGroup parent) {
    ImageView imageView;
    if (convertView == null){
        imageView = new ImageView(mContext);
        imageView.setLayoutParams(new GridView.LayoutParams(80, 80));
        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
        imageView.setPadding(15, 15, 15, 15);
        imageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                Intent intent = new Intent(mContext,FullScreenImage.class);
                intent.putExtra("imageID", mThumbIds[position]);
                mContext.startActivity(intent);
            }
        });


    }
    else{
        imageView = (ImageView) convertView;
    }
    imageView.setImageResource(mThumbIds[position]);
    return imageView;
}

private Integer[] mThumbIds = {
        R.mipmap.h1, R.mipmap.h2,
        R.mipmap.h3, R.mipmap.h4,
        R.mipmap.h5,R.mipmap.h6,
        R.mipmap.h7,R.mipmap.h8
        ,R.mipmap.h9,R.mipmap.h10
        ,R.mipmap.h11,R.mipmap.h12
        ,R.mipmap.h13,R.mipmap.h14
        ,R.mipmap.h15
};
}
public class FullScreenImage extends Activity {


ImageView imageView,imgBack;
Button setWallpaper,share;
Context activity;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.layout_fullscreen_image);

    //Get image fro Image adapter
    Bundle bdl = getIntent().getExtras();
    final int imageRes = bdl.getInt("imageID");

    //Setting up imageview
    imageView = (ImageView)findViewById(R.id.imgDisplay);

    //Share image to whatsapp
    share = (Button)findViewById(R.id.btnShare);
    share.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            Uri imageUri = Uri.parse("android.resource://com.v1.sensoft.halloween/mipmap"+imageRes);
            Intent intent = new Intent(Intent.ACTION_SEND);
            intent.setType("image/*");

            intent.putExtra(Intent.EXTRA_STREAM, imageUri);
            startActivity(Intent.createChooser(intent , "Share"));
        }

    });

    //Setting up wallpaper
    ImageView image = (ImageView) findViewById(R.id.imgDisplay);
    image.setImageResource(imageRes);

    setWallpaper = (Button)findViewById(R.id.setWall);
    setWallpaper.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            WallpaperManager myWallpaperManager
                    = WallpaperManager.getInstance(getApplicationContext());
            try {
                myWallpaperManager.setResource(imageRes);
                Context context = getApplicationContext();
                // Create layout inflator object to inflate toast.xml file
                LayoutInflater inflater = getLayoutInflater();

                // Call toast.xml file for toast layout
                View toastRoot = inflater.inflate(R.layout.layout_toast2, null);

                Toast toast = new Toast(context);

                // Set layout to toast
                toast.setView(toastRoot);
                toast.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL,
                        0,0 );
                toast.setDuration(Toast.LENGTH_LONG);
                toast.show();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    });


    //Header back button...for Mainactivity.java
    imgBack = (ImageView)findViewById(R.id.imgBack);
    imgBack.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            Intent intentLog9 = new Intent(getApplicationContext(), MainActivity.class);
            startActivity(intentLog9);
            finish();
        }
    });

}
}
如果有人知道问题出在哪里,请告诉我。
提前感谢…

尝试将.jpg附加到图像文件名中。文件名应具有有效的图像扩展名,如.jpg或.jpeg

在onClick中,尝试实现以下代码:

Intent intent = new Intent(mContext,FullScreenImage.class);
                intent.putExtra("imageID", mThumbIds[position]+".jpg");
                mContext.startActivity(intent);

尝试将.jpg附加到图像文件名。文件名应具有有效的图像扩展名,如.jpg或.jpeg

在onClick中,尝试实现以下代码:

Intent intent = new Intent(mContext,FullScreenImage.class);
                intent.putExtra("imageID", mThumbIds[position]+".jpg");
                mContext.startActivity(intent);

您可以使用下面的代码片段仅向whatsapp共享图像

Uri imageUri = Uri.parse("android.resource://com.v1.sensoft.halloween/mipmap"+imageRes);
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
//Target whatsapp:
shareIntent.setPackage("com.whatsapp");
//Add Image URI
shareIntent.putExtra(Intent.EXTRA_STREAM, imageUri);
shareIntent.setType("image/jpeg");
shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivity(shareIntent);

您可以使用下面的代码片段仅向whatsapp共享图像

Uri imageUri = Uri.parse("android.resource://com.v1.sensoft.halloween/mipmap"+imageRes);
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
//Target whatsapp:
shareIntent.setPackage("com.whatsapp");
//Add Image URI
shareIntent.putExtra(Intent.EXTRA_STREAM, imageUri);
shareIntent.setType("image/jpeg");
shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivity(shareIntent);

我明白你的意思。在您的情况下,首先您必须在sdcard中的AsyncTaskStore的帮助下从Uri下载图像,并使用以下代码发送到该图像

当你们从SD卡中选择路径时,它会自动检测图像扩展本身,无需担心

try {
                    Intent sendIntent = new Intent();
                    sendIntent.setAction(Intent.ACTION_SEND);
                    sendIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
                    sendIntent.putExtra(Intent.EXTRA_TEXT, "your title");
                    sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("your image path"));
                    sendIntent.setType("image/*");
                    sendIntent.setPackage("com.whatsapp");
                    startActivity(sendIntent);
                } catch (Exception e) {
                    e.printStackTrace();
                }

我明白你的意思。在您的情况下,首先您必须在sdcard中的AsyncTaskStore的帮助下从Uri下载图像,并使用以下代码发送到该图像

当你们从SD卡中选择路径时,它会自动检测图像扩展本身,无需担心

try {
                    Intent sendIntent = new Intent();
                    sendIntent.setAction(Intent.ACTION_SEND);
                    sendIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
                    sendIntent.putExtra(Intent.EXTRA_TEXT, "your title");
                    sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("your image path"));
                    sendIntent.setType("image/*");
                    sendIntent.setPackage("com.whatsapp");
                    startActivity(sendIntent);
                } catch (Exception e) {
                    e.printStackTrace();
                }
code`Intent sendIntent=newintent();
sendIntent.setAction(Intent.ACTION\u SEND);
List images_url=shareContent.getImages_url();
int type=shareContent.getType();
ArrayList uriList=新的ArrayList();
对于(int i=0;i
您必须从url下载图像到SD卡;发送从SD卡到whatsapp的路径

code`Intent sendIntent=new Intent();
sendIntent.setAction(Intent.ACTION\u SEND);
List images_url=shareContent.getImages_url();
int type=shareContent.getType();
ArrayList uriList=新的ArrayList();
对于(int i=0;i

您必须从url下载图像到SD卡;将路径从SD卡发送到whatsapp

不适用于我…你看到我的代码了吗?我正在使用捆绑包从图像适配器获取特定图像。不适用于我…你看到我的代码了吗?我正在使用捆绑包从图像适配器获取特定图像。@Vishal..请详细说明我正在通过捆绑包从图像适配器获取所有图像对于whatsapp图像共享,我得到了在activity@Vishal…请详细说明我正在通过Bundle将所有图像从ImageAdapter获取到myActivity,对于whatsapp图像共享,我获取在activity中打开的特定图像