2016-09-27 4 views
0

Я получаю предупреждение о том, что результат cachePath.createNewFile(); игнорируется. В противном случае следующий код не сохраняет изображение на моем телефоне. Что я могу сделать?Не удается сохранить изображение из растрового изображения

holder.messageImage.setOnLongClickListener(v -> { 
      v.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY); 

      Bitmap bitmap = ((BitmapDrawable) holder.messageImage.getDrawable()).getBitmap(); 

      File root = Environment.getExternalStorageDirectory(); 
      File cachePath = new File(root.getAbsolutePath() + "/DCIM/Camera/image.jpg"); 

      try { 
       FileOutputStream ostream = new FileOutputStream(cachePath); 
       bitmap.compress(CompressFormat.JPEG, 100, ostream); 
       ostream.close(); 
       Toast.makeText(mContext, "Image saved successfully", Toast.LENGTH_SHORT).show(); 
      } catch (Exception e) { 
       e.printStackTrace(); 
       Log.w(getClass().toString(), e); 
       Toast.makeText(mContext, "Failed saving image", Toast.LENGTH_SHORT).show(); 
      } 

      return false; 
     }); 

загрузить изображение с моего заднего конца так:

private void downloadMessageImage(ViewHolder holder, int position) { 
     ParseQuery<ParseObject> query = new ParseQuery<>(ParseConstants.CLASS_YEET); 
     query.whereEqualTo(ParseConstants.KEY_OBJECT_ID, mYeets.get(position).getObjectId()); 
     query.findInBackground((user, e) -> { 
      if (e == null) for (ParseObject userObject : user) { 

       if (userObject.getParseFile("image") != null) { 
        String imageURL = userObject.getParseFile("image").getUrl(); 
        /*Log.w(getClass().toString(), imageURL);*/ 

        if (imageURL != null) { 

         holder.messageImage.setVisibility(View.VISIBLE); 

         Picasso.with(mContext) 
           .load(imageURL) 
           .placeholder(R.color.placeholderblue) 
           .into(holder.messageImage); 

        } else { 
         holder.messageImage.setVisibility(View.GONE); 
        } 
       } 

      } 
     }); 
    } 

Растровое, конечно, не существует: [email protected]

+0

'cachePath.createNewFile();' Удалить этот оператор. Это бесполезно. – greenapps

+0

У вас есть исключения? Если да, отправьте логарифм. – greenapps

+0

Не исключение. – santafebound

ответ

0

, чтобы сохранить изображение, я использую следующий код:

try { 
     signature.setDrawingCacheEnabled(true); 
     Bitmap bm = Bitmap.createBitmap(signature.getDrawingCache()); 
     // Define params for save 
     File f = new File(Environment.getExternalStorageDirectory() + "/Cassiopea/momomorez/" + File.separator + "signature.png"); 
     f.createNewFile(); 
     FileOutputStream os = new FileOutputStream(f); 
     os = new FileOutputStream(f); 
     //compress to specified format (PNG), quality - which is ignored for PNG, and out stream 
     bm.compress(Bitmap.CompressFormat.PNG, 100, os); 
     Toast.makeText(mContext, "Saving image OK", Toast.LENGTH_SHORT).show(); 
     os.close(); 
} 
catch (Exception e) { 
     Log.v("Gestures", e.getMessage()); 
     e.printStackTrace(); 
} 

Используйте этот код t o сохранить шаблон в изображении в установленной папке.

+0

Это не сработало. Был показан тост «Сохранение изображения OK», но я не могу найти изображение в любом месте на своем телефоне. – santafebound

+0

Является ли GestureOverlayView Я использую его для создания изображения подписи, сделанной с помощью планшета – momomorez

+0

присутствует в AndroidManifest.xml – momomorez

Смежные вопросы