2016-09-27 3 views
1

Я использую одно приложение для обмена изображениями с whatsapp при нажатии «share button», и в соответствии с этим проектом я создал один Imageadapter, который расширяет Baseadapter и одно действие для обмена изображениями. Поэтому, когда я нажимаю кнопку «Поделиться», должен генерировать «Форматирование файла не поддерживается».Как решить эту ошибку типа «Форматировать файл не поддерживается» при совместном использовании изображений в whatsapp?

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 
}; 
} 

FullScreenImage.java

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(); 
     } 
    }); 

} 
} 

Если кто-нибудь знает, что это проблема плз скажите мне. Заранее спасибо ...

ответ

3

Попробуйте добавить .jpg к имени файла изображения. Имя файла должно иметь допустимое расширение имени изображения, например .jpg или .jpeg.

В вашем OnClick попробовать реализовать следующий код:

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

Это означает растровый декодер ?? –

+0

@Vishal ..Пожалуйста, уточните – Nishith

+0

Я получаю все изображения от ImageAdapter до myActivity, хотя Bundle и для обмена изображениями whatsapp. Я получаю определенное изображение, которое открывается в действии. –

0

Вы можете использовать приведенный ниже фрагмент кода, чтобы разделить изображение на 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); 
+0

Не работает для меня ... Вы видели мой код. Я получаю определенные изображения из адаптер изображения используя пучок. –

0

У меня есть ваша точка зрения. В вашем случае сначала вам нужно загрузить изображение из Uri с помощью магазина Asynctask внутри sdcard и отправить на это изображение, используя следующий код:

Когда вы выбираете путь из sdcard, он автоматически обнаруживает само расширение изображения, не нужно беспокоиться о что

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(); 
       }