本地保存gif图片,实现第二次不网络加载
来源:互联网 发布:阿里云服务器好卡 编辑:程序博客网 时间:2024/06/05 00:50
对于文件的操作:
保存到本地:
public void saveGifFile(byte[] buffer, String gifFile, String fileName) {String ALBUM_PATH = gifFile + "/gif_images/";File dirFile = new File(ALBUM_PATH);if (!dirFile.exists()) {dirFile.mkdir();}File myCaptureFile = new File(ALBUM_PATH + fileName);Log.i(TAG, myCaptureFile.getPath());BufferedOutputStream bos;try {bos = new BufferedOutputStream(new FileOutputStream(myCaptureFile));bos.write(buffer);bos.flush();bos.close();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}这个是基于之前的显示gif的方法:http://blog.csdn.net/xunfan/article/details/42041935
public void onSuccess(int arg0, Header[] arg1, byte[] arg2) {返回的参数是byte数组。
读取:
public String getGifFile(String gifFile, String fileName) {String ALBUM_PATH = gifFile + "/gif_images/";try {File file = new File(ALBUM_PATH + fileName);if (file.exists()) {return ALBUM_PATH + fileName;} else {return "";}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();return "";}}
若在磁盘有缓存,则返回缓存目录,否则返回“”;
然后直接new一个gifdrawable,并设置imageview的大小。
GifDrawable gifDrawable = new GifDrawable(str);android.view.ViewGroup.LayoutParams para;para = holder.gif_view.getLayoutParams();int width = getScreenWidth(mContext); // 屏幕宽度(像素)// 设置para.height = width * gifDrawable.getIntrinsicHeight()/ gifDrawable.getIntrinsicWidth();para.width = width;holder.gif_view.setLayoutParams(para);holder.gif_view.setBackgroundDrawable(gifDrawable);
使用到的函数:
// 获取屏幕的宽度public int getScreenWidth(Context context) {DisplayMetrics metric = new DisplayMetrics();((Activity) context).getWindowManager().getDefaultDisplay().getMetrics(metric);int width = metric.widthPixels; // 屏幕宽度(像素)return width;}
0 0
- 本地保存gif图片,实现第二次不网络加载
- Qt 获取网络gif图片并保存到本地显示
- 加载网络gif图片
- Swift之加载本地或者网络GIF图片
- android-加载网络Gif和本地Gif
- fresco 加载本地gif图片
- 从网络获取图片资源缓存到本地,第二次进入直接从本地加载。
- 使用AsyncTask加载网络图片并保存到手机本地
- chromium中从本地加载gif图片
- Android不加载获取网络、本地图片的尺寸
- 保存网络图片到本地
- Android 实现播放本地GIF图片
- Android ZoomImageView手势缩放拖动图片,并将Glide加载的网络图片保存到本地。
- Fresco 保存gif文件及图片到本地
- 网络加载图片并实现本地缓存与获取
- 异步加载图片,保存本地缓存
- 加载网络图片保存到本地java.io.IOException: open failed: EINVAL (Invalid argument)
- android 网络加载图片并保存本地,压缩,jpeg png格式分析
- HDOJ 题目1281 棋盘游戏(二分图最大匹配,删边)
- 验证码
- 数据结构 第五章树和二叉树 思维导图
- UFLDL中的BP推导、AutoEncoders derivation
- unity3d---GUI基础
- 本地保存gif图片,实现第二次不网络加载
- Objective-C语言的 if ( self = [super init] )什么意思?
- CCEditbox retina 文字 适配
- BZOJ 2165 大楼 倍增Floyd
- unity3d--脚本入门
- 用筛法求N之内的素数
- 《数据结构》实验五:树和二叉树实验
- 选择法排序
- 九度OJ 1099 后缀字串排序