您的位置:首页 > 移动开发 > Android开发

android中加载Gif图片

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



MainActivity.java

public 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.java

public 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.java

public 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);

附:源码下载地址
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 图片 动画 gif