android中加载Gif图片

来源:互联网 发布:东莞网络电视剧 编辑:程序博客网 时间:2024/04/29 11:33

       很多时候由于项目的需要,我们需要加载Gif的图片,实现动画效果,但是android本身并不支持直接加载Gif图片。因此网络上出现了很多关于android加载Gif图片的框架。今天在这里就为大家介绍其中的两个框架,一个是Xutils3.0,一个是android-gif-drawable的开源库。其中使用Xutils会出现适配的问题。所以这里不推荐在项目使用。
实现加载的效果

MainActivity.javapublic class MainActivity extends Activity implements View.OnClickListener {    private Button mFirst;//使用android开源库加载    private Button mSecond;//使用xutils加载    private Context mContext;    private Intent mIntent;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mContext = this;        initView();    }    //初始化View    private void initView() {        mFirst = (Button) findViewById(R.id.btn_gif);        mSecond = (Button) findViewById(R.id.btn_xutils);        mFirst.setOnClickListener(this);        mSecond.setOnClickListener(this);    }    @Override    public void onClick(View v) {        switch (v.getId()) {            case R.id.btn_gif:                mIntent = new Intent(mContext, GifImageViewActivity.class);                startActivity(mIntent);                break;            case R.id.btn_xutils:                mIntent = new Intent(mContext, XutilsActivity.class);                startActivity(mIntent);                break;        }    }}
GifImageViewActivity.javapublic class GifImageViewActivity extends Activity {    private GifImageView mGifImageView;//显示Gif的GifImageView    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_gif_imageview);        initView();    }    //初始化View    private void initView() {        mGifImageView = (GifImageView) findViewById(R.id.imageView);        //gif 代码控制播放速度        try {            GifDrawable gifDrawable = new GifDrawable(getResources(), R.drawable.test);            gifDrawable.setSpeed(0.6f);            mGifImageView.setImageDrawable(gifDrawable);        } catch (IOException e) {            e.printStackTrace();        }    }}
XutilsActivity.javapublic class XutilsActivity extends Activity {    private ImageView mImageView;//显示gif的imageview    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_xutils);        initView();    }    //初始化View    private void initView() {        mImageView = (ImageView) findViewById(R.id.xutils_imageview);        ImageOptions imageOptions = new ImageOptions.Builder()                .setIgnoreGif(false)//是否忽略gif图。false表示不忽略。不写这句,默认是true                .setImageScaleType(ImageView.ScaleType.FIT_CENTER)                .build();        x.image().bind(mImageView, "assets://test.gif", imageOptions);    }}
activity_gif_imageview.xml<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:layout_width="match_parent"    android:background="#ffffff"     android:layout_height="match_parent">    <pl.droidsonroids.gif.GifImageView        android:layout_width="match_parent"        android:layout_height="match_parent"        android:layout_centerInParent="true"        android:scaleType="fitCenter"        android:id="@+id/imageView"        android:layout_marginRight="30dp"        android:layout_marginLeft="30dp"        android:layout_marginTop="30dp"/></RelativeLayout>

注:使用Xutils时需要在BaseApplication进行初始化x.Ext.init(this);
附:源码下载地址

0 0
原创粉丝点击