Android长按imageview把图片保存到本地的实例代码

Android长按imageview把图片保存到本地的实例代码,第1张

概述工具类之前用AsyncTask 现在改用rxJavapublicclassSaveImageUtils{publicstaticvoidimageSave(finalImageViewimageView,finalintid){

工具类

之前用

AsyncTask 

现在改用rxJava

public class SaveImageUtils {   public static voID imageSave(final ImageVIEw imageVIEw,final int ID) {     Observable         .create(new Observable.OnSubscribe<ImageVIEw>() {               @OverrIDe               public voID call(Subscriber<? super ImageVIEw> sub) {                 sub.onNext(imageVIEw);               }             }         ).subscribeOn(Schedulers.io())         .observeOn(AndroIDSchedulers.mainThread())         .subscribe(new MySubscriber<ImageVIEw>() {           @OverrIDe           public voID onNext(ImageVIEw imageVIEw) {             file imagefile = new file(ActivityUtils.ImagePath(),ID + ".jpg");             fileOutputStream outStream = null;             try {               outStream = new fileOutputStream(imagefile);               Bitmap image = imageVIEw.getDrawingCache();               image.compress(Bitmap.CompressFormat.JPEG,100,outStream);               outStream.flush();               outStream.close();               Toast.makeText(UIUtils.getContext(),UIUtils.getString(R.string.save_picture_success),Toast.LENGTH_LONG).show();             } catch (IOException e) {               e.printstacktrace();               onError(e);             }           }           @OverrIDe           public voID onError(Throwable e) {             Toast.makeText(UIUtils.getContext(),UIUtils.getString(R.string.save_picture_Failed),Toast.LENGTH_LONG).show();           }         });   } } 

MySubscriber

public class MySubscriber<T> extends Subscriber<T> {   @OverrIDe   public voID onStart() {     super.onStart();   }   @OverrIDe   public voID onCompleted() {   }   @OverrIDe   public voID onError(Throwable e) {   }   @OverrIDe   public voID onNext(T t) {   } } //不建议使用了package com.app.mly.utils; import androID.app.Activity; import androID.graphics.Bitmap; import androID.os.AsyncTask; import androID.os.Environment; import androID.Widget.ImageVIEw; import androID.Widget.Toast; import com.fengche.androID.mly.R; import java.io.file; import java.io.fileOutputStream; /**  * Created by y on 2016/1/14.  */ public class SaveImageUtils extends AsyncTask<Bitmap,VoID,String> {   Activity mActivity;   ImageVIEw mImageVIEw;   public SaveImageUtils(Activity activity,ImageVIEw imageVIEw) {     this.mImageVIEw = imageVIEw;     this.mActivity = activity;   }   @OverrIDe   protected String doInBackground(Bitmap... params) {     String result = mActivity.getResources().getString(R.string.save_picture_Failed);     try {       String sdcard = Environment.getExternalStorageDirectory().toString();       file file = new file(sdcard + "/123");       if (!file.exists()) {         file.mkdirs();       }       file imagefile = new file(file.getabsolutePath(),"命名" + ".jpg");       fileOutputStream outStream = null;       outStream = new fileOutputStream(imagefile);       Bitmap image = params[0];       image.compress(Bitmap.CompressFormat.JPEG,outStream);       outStream.flush();       outStream.close();       result = mActivity.getResources().getString(R.string.save_picture_success,file.getabsolutePath());     } catch (Exception e) {       e.printstacktrace();     }     return result;   }   @OverrIDe   protected voID onPostExecute(String result) {     Toast.makeText(mActivity,result,Toast.LENGTH_SHORT).show();     mImageVIEw.setDrawingCacheEnabled(false);   } } 

stirng文件下需要的几个toast

<string name="save_picture">保存图片</string> <string name="save_picture_Failed">保存失败</string> <string name="save_picture_success">图片成功保存至%s目录</string> 

代码中引用

mScanCode.setonLongClickListener(new VIEw.OnLongClickListener() {       @OverrIDe       public boolean onLongClick(VIEw v) {         AlertDialog.Builder builder = new AlertDialog.Builder(ShareActivity.this);         builder.setItems(new String[]{getResources().getString(R.string.save_picture)},new DialogInterface.OnClickListener() {           @OverrIDe           public voID onClick(DialogInterface dialog,int which) {             mScanCode.setDrawingCacheEnabled(true);             Bitmap imageBitmap = mScanCode.getDrawingCache();             if (imageBitmap != null) {               new SaveImageUtils(ShareActivity.this,mScanCode).execute(imageBitmap);             }           }         });         builder.show();         return true;       }     }); 

总结

以上所述是小编给大家介绍的AndroID长按imagevIEw把图片保存到本地的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程小技巧网站的支持!

总结

以上是内存溢出为你收集整理的Android长按imageview把图片保存到本地的实例代码全部内容,希望文章能够帮你解决Android长按imageview把图片保存到本地的实例代码所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1143373.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存