精华内容
下载资源
问答
  • 来公司快三个月了,因为项目紧,很长一段时间没有发表博文了,做了两个项目,功能差不多,下面简单说明一下有哪些功能 就相当于国内新浪微博或者腾讯微博客户端之类,请求并解析从网络获取到特定格式的xml...

    来公司快三个月了,因为项目紧,很长一段时间没有发表博文了,做了两个项目,功能差不多,下面简单说明一下有哪些功能

    就相当于国内的新浪微博或者腾讯微博客户端之类的,请求并解析从网络获取到的特定格式的xml数据,按照一定的格式显示出来,首页是一个ListView,这点不用说吧,点击某个item的时候跳转到详细页面,在详细页面可以发表评论,可以分享到Twitter,这里用到一个控件,叫PopupWindow,记得当时弄这个东西弄了几天才实现,对于分享到Twitter,这也是个难点,之前发表了一篇博文,好像没怎么讲清楚,很多人在问我,大家的问题基本上都是我之前遇到过的,在创建应用的时候一定要设置CALLBACK_URL这个值,可以是https://api.twitter.com/oauth/authorize?oauth_token,如果不设置它的话,当验证通过了不会跳转的,只是在页面上显示一串的数字,我也不知道那数字有什么用,如果设置了这个CALLBACK_URL,当验证成功了就会跳转,并且返回的时候还会在这个url后面加上一些参数,比如accesstoken之类的,这个值可以存起来,之后重新发表的时候把这个参数附带上就行了,就不用再验证。

    今天我不打算讲Twitter这一块,讲讲在ListView中动态获取图片吧

    首先介绍一个类,这个类也是在网上找的,有的有点问题,稍微做了一些修改,直接拿来就可以用的

    AsyncImageLoader.java

    package com.netafull.util;

    import java.lang.ref.SoftReference;
    import java.net.URL;
    import java.util.HashMap;
    import java.util.Map;

    import android.graphics.drawable.Drawable;
    import android.os.Handler;
    import android.os.Message;

    public class AsyncImageLoader {
    private Map<String, SoftReference<Drawable>> imageCache = new HashMap<String, SoftReference<Drawable>>();

    public Drawable loadDrawable(final String imageUrl,
    final ImageCallback callback) {
    if (imageCache.containsKey(imageUrl)) {
    SoftReference
    <Drawable> softReference = imageCache.get(imageUrl);
    if (softReference.get() != null) {
    return softReference.get();
    }
    }
    final Handler handler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
    callback.imageLoaded((Drawable) msg.obj, imageUrl);
    }
    };
    new Thread() {
    public void run() {
    Drawable drawable
    = loadImageFromUrl(imageUrl);
    imageCache.put(imageUrl,
    new SoftReference<Drawable>(drawable));
    handler.sendMessage(handler.obtainMessage(
    0, drawable));
    };
    }.start();
    return null;
    }

    protected Drawable loadImageFromUrl(String imageUrl) {
    try {
    return Drawable.createFromStream(new URL(imageUrl).openStream(),
    "src");
    }
    catch (Exception e) {
    // throw new RuntimeException(e);
    //System.out.println(imageUrl);
    return null;
    }
    }

    public interface ImageCallback {
    public void imageLoaded(Drawable imageDrawable, String imageUrl);
    }

    }

      调用这个类的时候只需要传入一个imageUrl就行了,采用异步方式加载,所以不会对主线程造成影响

    下面是Adapter

    HomePageAdapter.java

    package com.netafull.adapter;

    import java.util.HashMap;
    import java.util.List;

    import com.netafull.R;
    import com.netafull.analyze.News;
    import com.netafull.util.AsyncImageLoader;
    import com.netafull.util.AsyncImageLoader.ImageCallback;

    import android.content.Context;
    import android.graphics.drawable.Drawable;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.ImageView;
    import android.widget.TextView;

    public class HomePageAdapter extends BaseAdapter {

    public List<News> items;
    Context context;
    public HashMap<Integer, Drawable> hm;
    private AsyncImageLoader asyncImageLoader;
    int count = 0;

    public HomePageAdapter(List<News> items, Context context) {
    super();
    this.items = items;
    this.context = context;
    hm
    = new HashMap<Integer, Drawable>();
    asyncImageLoader
    = new AsyncImageLoader();
    count
    = items.size();
    }

    @Override
    public int getCount() {
    return count;
    }

    public void setCount(int count) {
    this.count = count;
    }

    @Override
    public Object getItem(int arg0) {
    return items.get(arg0);
    }

    @Override
    public long getItemId(int arg0) {
    return arg0;
    }

    @Override
    public View getView(final int position, View convertView, ViewGroup arg2) {
    News temp
    = items.get(position);

    View view
    = null;
    final ViewHolder holder = new ViewHolder();
    String image_url
    = temp.getImg_url();
    // System.out.println(image_url);
    if (image_url != null) {

    view
    = LayoutInflater.from(context).inflate(
    R.layout.homepage_list_item,
    null);
    holder.tv_public_date
    = (TextView) view
    .findViewById(R.id.list_public_date);
    holder.tv_public_date.setText(temp.getPublic_date());
    holder.tv_title
    = (TextView) view.findViewById(R.id.list_title);
    holder.tv_title.getPaint().setFakeBoldText(
    true);
    holder.tv_title.setText(temp.getTitle());
    holder.tv_description
    = (TextView) view
    .findViewById(R.id.list_description);
    holder.tv_description.setText(temp.getDescription());
    holder.iv_image
    = (ImageView) view.findViewById(R.id.list_image);

    // 动态加载图片

    Drawable d
    = hm.get(position);
    if (d != null) {
    holder.iv_image.setImageDrawable(d);
    }
    else {
    asyncImageLoader.loadDrawable(image_url,
    new ImageCallback() {

    @Override
    public void imageLoaded(Drawable imageDrawable,
    String imageUrl) {
    // TODO Auto-generated method stub
    if (holder.iv_image != null && imageDrawable != null) {
    holder.iv_image.setImageDrawable(imageDrawable);
    hm.put(position, imageDrawable);

      

      我这里面做了一个判断哈,我先判断的image_url 是否为空,因为有的时候请求某个item的时候,xml文件中没有给出image_url数据,这时就没有图片,然后我就使用了另外的布局文件,以文字填充本来应该显示图片的内容。但这个不是重点。

    此Adapter中定义了一个

    public HashMap<Integer, Drawable> hm;

      用来存储相应位置上的图片,Integer表示item的id,Drawable自然就表示对应id的图片了,当取到图片的时候,就放进去,并设置好id

    hm.put(position, imageDrawable);

      当然,首先要判断,某个id位置是否已经有图片,如果有的话就直接返回图片,并显示,如果没有的话,再请求。。。

    Drawable d = hm.get(position);
    if (d != null) {
    holder.iv_image.setImageDrawable(d);
    }
    else {...}

      

      OK,就是这样吧,这个知识点先记录这么多,有问题直接留言哈,我看到后会回复的。。。

    (由于最近公司iPhone项目特别多,准备学点iPhone开发,Android开发可能要隔段时间了。。。)

    转载于:https://www.cnblogs.com/and_he/archive/2011/08/11/2135193.html

    展开全文
  • **我是一个.net开发者,我想使用ueditor编辑器来上传动态图, 选择动态图后,当前动态图不动,...图片只保留动态第一帧,变成了一个以Gif格式的静态图, 请问我需要处理哪些地方才可以保证它是一个动态图?** ...
    	**我是一个.net开发者,我想使用ueditor编辑器来上传动态图,
    选择动态图后,当前动态图不动,点击上传后,
    图片只保留动态图的第一帧,变成了一个以Gif格式的静态图,
    请问我需要处理哪些地方才可以保证它是一个动态图?**
    
    展开全文
  • APNG格式是什么

    2021-05-15 11:14:05
    APNG 是普通 png 图片的升级版,它的后缀依然是.png,包含动态的情况下体积会比普通静态 png 打出数倍,可以做到无损的情况展示动态。其诞生的目的是为了替代老旧的 GIF 格式,但它目前并没有获得 PNG 组织官方的...

    APNG 是什么?相对于 GIF 有哪些优势?APNG 是一个基于 PNG 格式的位图动画格式图片,因为对于一直以来的特点就是以动态显示为主的 GIF,为了更好地在网络上传播,它需要牺牲质量来降低体积,图像信息比较多的情况下,颗粒感很明显。APNG 是普通 png 图片的升级版,它的后缀依然是.png,包含动态的情况下体积会比普通静态 png 打出数倍,可以做到无损的情况展示动态。其诞生的目的是为了替代老旧的 GIF 格式,但它目前并没有获得 PNG 组织官方的认可。

    aPNG vs GIF

    APNG 全称是 Animated Portable Network Graphics,是 PNG 的位图动画扩展,可以实现 png 格式的动态图片效果。但是 PNG 组织一直都不认可 APNG。因为 PNG 组织也曾做过一个名叫 MNG 的图像格式,希望可以成为 PNG 动画的标准,主流。可惜,MNG 不争气,过多浪费社会资源,以至于 PNG 组织都放弃了。

    GIF 与 APNG 格式图片效果对比

    GIF 是一个非常古老的格式,1987 年诞生,最后一个版本是 1989 年。至今已经足足三十年,却依然未被新的技术所取替,这是为什么呢?

    主要有四个原因

    1. 几乎所有的主流浏览器都支持 GIF
    2. 早期选择不多,GIF 几乎是唯一选择(GIF – 1987、JPEG – 1992、PNG – 1996、APNG – 2004、WebP – 2010)
    3. 实现起来简单,制作的工具多
    4. 采用 LZW 数据压缩算法,使得 GIF 体积小,在早期慢速的互联网易于传播

    APNG 相对新一些,是 Mozilla 在 2004 年推出的,十几年的科技进步是不容小觑的,所以 APNG 相对于 GIF 的优势十分明显,后面会分析。APNG 格式是 PNG 的扩展,第一帧储存方式和普通的 PNG 一样在 IDAT 区段中,APNG 只是新增了三种区段,所以如果一个软件只支持 PNG 而不支持 APNG 的话,依旧可以显示出图片的第一帧,只是不能动罢了。

    APNG 新增的三种区段分别为:

    1. acTL (animation control) 用来存放帧数和播放次数,整个文件只有一个区段
    2. fcTL (frame control) 用来存放每一帧的高、宽、位置、延时等信息,每一帧一个区段
    3. fdAT (frame data) 用来存放除了第一帧以外后面每一帧的图片数据,采用 Deflate 压缩,每一帧一个区段

    关于压缩率

    GIF 采用的是 LZW,而 APNG 采用的是 Deflate,再加上 APNG 继承了 PNG 的 filter,利用相邻像素的相似性使压缩率大大提高。

    关于颜色

    GIF 每个像素只有 8 bit,也就是说只有 256 种颜色,于是很多人误以为 GIF 不支持 24 bit RGB,但实际上,GIF 的限制是每一帧最多只能有 256 种颜色,但是每种颜色可以是 24 bit 的。不过即使是这样,256 种颜色还是太少了,这就导致了 GIF 的画质都比较差。而 APNG 和 WebP 则完全没有这方面的限制。

    关于透明

    GIF 虽然也支持透明,但是他只支持将某个颜色标记成透明,也就是说他不支持半透明,只支持完全透明或者完全不透明。如果把一个边缘是半透明的图片转换成 GIF,就会出现另一个答案中提到的杂边问题。 而 APNG 和 WebP 都支持 8 bit alpha channel,透明度可以有 256 级。

    关于兼容性

    GIF 的兼容性不用多说,这也可能是其唯一的优势了吧,因为你可能就找不到不支持 gif 图片格式的浏览器,但是对于 APNG 而言,支持的浏览器只有 Firefox 和 Safari,同时 Chrome 59 也将支持 APNG,但是对于微软下面的 IE 或者 EDGE 嘛,子凡我就笑笑不说话啦!

    就目前的各种情况来看,aPNG 还是很难流行或者真正的使用起来,因为对于制作方面还是非常麻烦的,当然如果大家感兴趣可以去看看这个网站(http://littlesvr.ca/apng/),里面就是一些 APNG 制作的软件。

    总的来说子凡并不是非常看好 APNG,这里就不得不说到 Google 在 2010 年推出的全部通吃的图片格式:WebP,为什么叫全部通吃呢?因为他既可以有损(替代 JPEG)也可以无损(替代 PNG),还可以动(替代 GIF),并且在压缩率上全面超越了这三种常用的格式。,目前支持 WebP 的只有 Chrome 和 Opera,据说 Firefox 也即将支持 WebP,据说 Safari 也在测试 WebP 的支持。至于 IE 和 EDGE 大家就别想了,子凡也就一笑而过吧!

    展开全文
  • 我们首先先来简单看一下,动态效果制作有哪些分类?首先第一个就是我们gif图片,这是一种非常简单,但却高效的动态图制作方式。GIF图片擅长于制作细节小动画,位图,优势在于“体型”很小,可压缩,制作成本低...
  • APNG图片是什么

    2021-05-15 11:12:27
    APNG 是普通 png 图片的升级版,它的后缀依然是.png,包含动态的情况下体积会比普通静态 png 打出数倍,可以做到无损的情况展示动态。其诞生的目的是为了替代老旧的 GIF 格式,但它目前并没有获得 PNG 组织官方的...

    APNG 是什么?相对于 GIF 有哪些优势?APNG 是一个基于 PNG 格式的位图动画格式图片,因为对于一直以来的特点就是以动态显示为主的 GIF,为了更好地在网络上传播,它需要牺牲质量来降低体积,图像信息比较多的情况下,颗粒感很明显。APNG 是普通 png 图片的升级版,它的后缀依然是.png,包含动态的情况下体积会比普通静态 png 打出数倍,可以做到无损的情况展示动态。其诞生的目的是为了替代老旧的 GIF 格式,但它目前并没有获得 PNG 组织官方的认可。

    aPNG vs GIF

    APNG 全称是 Animated Portable Network Graphics,是 PNG 的位图动画扩展,可以实现 png 格式的动态图片效果。但是 PNG 组织一直都不认可 APNG。因为 PNG 组织也曾做过一个名叫 MNG 的图像格式,希望可以成为 PNG 动画的标准,主流。可惜,MNG 不争气,过多浪费社会资源,以至于 PNG 组织都放弃了。

    GIF 与 APNG 格式图片效果对比

    GIF 是一个非常古老的格式,1987 年诞生,最后一个版本是 1989 年。至今已经足足三十年,却依然未被新的技术所取替,这是为什么呢?

    主要有四个原因

    1. 几乎所有的主流浏览器都支持 GIF
    2. 早期选择不多,GIF 几乎是唯一选择(GIF – 1987、JPEG – 1992、PNG – 1996、APNG – 2004、WebP – 2010)
    3. 实现起来简单,制作的工具多
    4. 采用 LZW 数据压缩算法,使得 GIF 体积小,在早期慢速的互联网易于传播

    APNG 相对新一些,是 Mozilla 在 2004 年推出的,十几年的科技进步是不容小觑的,所以 APNG 相对于 GIF 的优势十分明显,后面会分析。APNG 格式是 PNG 的扩展,第一帧储存方式和普通的 PNG 一样在 IDAT 区段中,APNG 只是新增了三种区段,所以如果一个软件只支持 PNG 而不支持 APNG 的话,依旧可以显示出图片的第一帧,只是不能动罢了。

    APNG 新增的三种区段分别为:

    1. acTL (animation control) 用来存放帧数和播放次数,整个文件只有一个区段
    2. fcTL (frame control) 用来存放每一帧的高、宽、位置、延时等信息,每一帧一个区段
    3. fdAT (frame data) 用来存放除了第一帧以外后面每一帧的图片数据,采用 Deflate 压缩,每一帧一个区段

    关于压缩率

    GIF 采用的是 LZW,而 APNG 采用的是 Deflate,再加上 APNG 继承了 PNG 的 filter,利用相邻像素的相似性使压缩率大大提高。

    关于颜色

    GIF 每个像素只有 8 bit,也就是说只有 256 种颜色,于是很多人误以为 GIF 不支持 24 bit RGB,但实际上,GIF 的限制是每一帧最多只能有 256 种颜色,但是每种颜色可以是 24 bit 的。不过即使是这样,256 种颜色还是太少了,这就导致了 GIF 的画质都比较差。而 APNG 和 WebP 则完全没有这方面的限制。

    关于透明

    GIF 虽然也支持透明,但是他只支持将某个颜色标记成透明,也就是说他不支持半透明,只支持完全透明或者完全不透明。如果把一个边缘是半透明的图片转换成 GIF,就会出现另一个答案中提到的杂边问题。 而 APNG 和 WebP 都支持 8 bit alpha channel,透明度可以有 256 级。

    关于兼容性

    GIF 的兼容性不用多说,这也可能是其唯一的优势了吧,因为你可能就找不到不支持 gif 图片格式的浏览器,但是对于 APNG 而言,支持的浏览器只有 Firefox 和 Safari,同时 Chrome 59 也将支持 APNG,但是对于微软下面的 IE 或者 EDGE 嘛,子凡我就笑笑不说话啦!

    就目前的各种情况来看,aPNG 还是很难流行或者真正的使用起来,因为对于制作方面还是非常麻烦的,当然如果大家感兴趣可以去看看这个网站(http://littlesvr.ca/apng/),里面就是一些 APNG 制作的软件。

    总的来说子凡并不是非常看好 APNG,这里就不得不说到 Google 在 2010 年推出的全部通吃的图片格式:WebP,为什么叫全部通吃呢?因为他既可以有损(替代 JPEG)也可以无损(替代 PNG),还可以动(替代 GIF),并且在压缩率上全面超越了这三种常用的格式。,目前支持 WebP 的只有 Chrome 和 Opera,据说 Firefox 也即将支持 WebP,据说 Safari 也在测试 WebP 的支持。至于 IE 和 EDGE 大家就别想了,子凡也就一笑而过吧!

    展开全文
  • APNG是什么图片

    2021-05-15 11:13:08
    APNG 是普通 png 图片的升级版,它的后缀依然是.png,包含动态的情况下体积会比普通静态 png 打出数倍,可以做到无损的情况展示动态。其诞生的目的是为了替代老旧的 GIF 格式,但它目前并没有获得 PNG 组织官方的...
  • 多达150种超酷的动态图片显示效果,定能让您流连忘返。 创建PDF文件: 您可以为单个文件生成单独PDF文件,也可以将多张图片放入一个PDF中。PDF文件具有防复制、防篡改功能。而且图像表现能力也非常好。现在...
  • 什么是APNG

    2021-05-18 10:55:56
    APNG 是普通 png 图片的升级版,它的后缀依然是.png,包含动态的情况下体积会比普通静态 png 打出数倍,可以做到无损的情况展示动态。其诞生的目的是为了替代老旧的 GIF 格式,但它目前并没有获得 PNG 组织官方的...
  • HTMLPack,又名HTML2EXE或Web2EXE,可以将html网页打包成exe,将HTML页面或整个网站打包加密在一个压缩格式的EXE文件里,并可以根据用户电脑进行授权浏览,页面中文字、动画、图片等无法复制和下载;支持Frame ,...
  • Java后端模板引擎对比

    千次阅读 2020-12-17 22:17:20
    源站可能有防盗链机制,建议将图片保存下来直接上传(img-YLu64IS7-1608214617606)(https://blogpic.chekuspace.com/image-20201214142214449.png)]## 二、java常用模板引擎有哪些jsp:是一种动态网页开发技术。...
  • 客户端向该主题发布发现消息,所有收到消息设备向/dev/response/discovery回复一条消息,而客户端又订阅了/dev/response/discovery主题,故而便可以知道哪些设备在线了。 设备连上服务器时候,会定义一个遗嘱...
  • 但Qt Creator 默认是用动态链接, 就是可执行程序在运行时需要相应.dll 文件。我们点击生成.exe 文件,首 先可能显示“没有找到mingwm10.dll,因此这个应用程序未能启动。重新安装 应用程序可能会修复此问题。...
  • 引起LNK2001常见错误都有哪些 如何调试Windows外壳扩展程序(Shell Extension) 如何调试一个没有原码exe文件调用 dll 怎样设置栈大小 如何知道GetLastError()返回错误代码意义 如何使用Visual C++ 6.0...
  • flash shiti

    2014-03-14 10:32:41
    42.图形文件中,哪几种格式的矢量图能被Flash直接引用? A. *.ai B. *.eps C. *.cdr D. *.wmf 43.下图中哪几项可以打开平滑与整平工具? A. 从附属选项中挑选 和 钮 B. 从附属选项中挑选 和 钮 C. 选取...
  • CruiseYoung提供详细书签电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 SQL Server 2008实战(SQL Server程序员和DBA不可或缺权威参考手册) 基本信息 原书名: SQL Server 2008 ...
  • HtmlPack V5

    2012-01-14 14:45:31
    HTMLPack,又名HTML2EXE或Web2EXE,可以将html网页打包成exe,将HTML页面或整个网站打包加密在一个压缩格式的EXE文件里,并可以根据用户电脑进行授权浏览,页面中文字、动画、图片等无法复制和下载;支持Frame ,...
  • 使用Arouter注意事项有哪些?如何让代码变得更加容易让人维护? 直接看我这篇博客:https://juejin.im/post/5c46e6fb6fb9a049a5713bcc 4.6 存在待解决问题 动态的管理组件,所以给每个组件添加几个生命周期...
  • php网络开发完全手册

    热门讨论 2009-03-02 13:17:26
    7.2.2 字符的格式化 103 7.3 常见的操作 104 7.3.1 字符串重复操作——str_repeat 104 7.3.2 字符串替换操作——str_replace 7.3.2 和str_ireplace 104 7.3.3 字符串分解操作——str_split 106 7.3.4 字符串单词数的...
  • 这里一张互联网公司面试中经常考察问题类型总结思维导图,我们可以结合图片信息分析一下。 (图片来自 leetcode) 其中算法,主要是以下几种: 基础技巧:分治、二分、贪心 排序算法:快速排序、归并...
  • 黑马品优购项目

    2018-07-25 16:11:13
    前端:三级联动、富文本、图片上传、动态生成内容 4.3.2. 商品修改 需要从3张表获取数据,然后进行回显。 4.4. 典型模块设计 4.4.1. 管理后台 商品新增、商品修改 4.4.2. 前台页面 搜索模块实现 购物车模块实现 ...
  • HTMLPack,又名HTML2EXE或Web2EXE,可以将html网页打包成exe,将HTML页面或整个网站打包加密在一个压缩格式的EXE文件里,并可以根据用户电脑进行授权浏览,页面中文字、动画、图片等无法复制和下载;支持Frame ,...
  • JAVA面试题最全集

    2010-03-13 13:09:10
    34.EJB规范规定EJB中禁止操作有哪些? 35.java除了8种基本类型外,在虚拟机里还有哪一种,有什么作用? 36.除了使用new关键字创建对象意外,试列举另外三种以上创建实例方式? 37.classloader中,JDKAPI、...
  • PowerPoint.2007宝典 8/10

    2012-04-01 18:39:23
    第7章 设置段落和文本框的格式 137 7.1 设置项目符号列表的格式 137 7.1.1 项目符号和幻灯片母版 137 7.1.2 使用预设项目符号 138 7.1.3 更改项目符号的大小和颜色 139 7.1.4 更改项目符号的符号 139 ...
  • PowerPoint.2007宝典 10/10

    2012-04-01 18:45:00
    第7章 设置段落和文本框的格式 137 7.1 设置项目符号列表的格式 137 7.1.1 项目符号和幻灯片母版 137 7.1.2 使用预设项目符号 138 7.1.3 更改项目符号的大小和颜色 139 7.1.4 更改项目符号的符号 139 ...
  • PowerPoint.2007宝典 9/10

    2012-04-01 18:42:38
    第7章 设置段落和文本框的格式 137 7.1 设置项目符号列表的格式 137 7.1.1 项目符号和幻灯片母版 137 7.1.2 使用预设项目符号 138 7.1.3 更改项目符号的大小和颜色 139 7.1.4 更改项目符号的符号 139 ...

空空如也

空空如也

1 2 3 4
收藏数 68
精华内容 27
关键字:

动态图片的格式有哪些