參考如下工具類,可以實(shí)現(xiàn)在android 中展示gif:
創(chuàng)新互聯(lián)建站主營(yíng)柳江網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,成都APP應(yīng)用開發(fā),柳江h(huán)5重慶小程序開發(fā)搭建,柳江網(wǎng)站營(yíng)銷推廣歡迎柳江等地區(qū)企業(yè)咨詢
MyGifView.java
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Movie;
import android.util.AttributeSet;
import android.view.View;
public class MyGifView extends View{
private long movieStart;
private Movie movie;
//此處必須重寫該構(gòu)造方法
public MyGifView(Context context,AttributeSet attributeSet) {
super(context,attributeSet);
//以文件流(InputStream)讀取進(jìn)gif圖片資源
movie=Movie.decodeStream(getResources().openRawResource(R.drawable.keyboard));
}
@Override
protected void onDraw(Canvas canvas) {
long curTime=android.os.SystemClock.uptimeMillis();
//第一次播放
if (movieStart == 0) {
movieStart = curTime;
}
if (movie != null) {
int duraction = movie.duration();
int relTime = (int) ((curTime-movieStart)%duraction);
movie.setTime(relTime);
movie.draw(canvas, 0, 0);
//強(qiáng)制重繪
invalidate();
}
super.onDraw(canvas);
}
}
此工具類中,只做了2件事情。1,構(gòu)造方法;2,重寫了onDraw()方法。大家以后用的話,只需拷貝此類到你的工程下即可起作用。
這段時(shí)間研究了一段時(shí)間Android端增強(qiáng)現(xiàn)實(shí)的方式,總體分為兩個(gè)大類:全景圖和3D模型。
于是基于這兩種形式,以三種方式來展示增強(qiáng)現(xiàn)實(shí):
1.全景360°GIF,支持拖動(dòng),縮放。
2.展示3D模型
3.Google官方展示全景圖探究
這篇博客就主要以展示為主吧,放上具體的效果Demo和使用方式,后面會(huì)有具體博客用于分析實(shí)現(xiàn)方式和技術(shù)難點(diǎn)的。
使用方式:
1.Add it in your root build.gradle at the end of repositories:
Step 2. Add the dependency
大家應(yīng)該在京東和淘寶上見過這種效果吧:
我的實(shí)現(xiàn)效果圖:
功能:
使用方式:
XML and Java
在京東上見到過這樣效果的商品:
功能:
使用方式:
XML and Java
官方Demmo地址:
這篇博客主要展示一下功能吧,下面應(yīng)該會(huì)分三篇博客,分別介紹前兩種實(shí)現(xiàn)過程中的難點(diǎn)和技術(shù)點(diǎn),和第三種也就是Google官方展示全景圖,從源碼角度看一下Google官方的實(shí)現(xiàn)方式。
這是正?,F(xiàn)象。在android系統(tǒng)中,為了不影響正常使用,收到消息時(shí),彈消息是在屏幕上方顯示的,但由于消息內(nèi)容太長(zhǎng),是無法全部顯示的。