1:經查資料,Android中gif動畫加載共有兩種java
1)利用WebView,WebView 主要調用三個方法:LoadUrl、LoadData、LoadDataWithBaseURLandroid
2)主要用的是:android中的android.graphics.Movie 這個類,這是android提供給咱們的一個很是方便的工具。有些注意點 好比API 11 Android 3.0 Honeycomb (APIlevel 11) 以後不能使用硬件渲染。ide
/** * Starting from HONEYCOMB have to turn off HW acceleration to draw * Movie on Canvas. */ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { setLayerType(View.LAYER_TYPE_SOFTWARE, null); }
須要關閉View組件的硬件渲染。參考以下:工具
public class FragmentComment extends Fragment { private View rootView; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub rootView = inflater.inflate(R.layout.case_history_comment, null); rootView.setLayerType(View.LAYER_TYPE_SOFTWARE, null); return rootView; } }
參考:http://my.oschina.net/u/143926/blog/173011?fromerr=4flma5q5佈局
最終看到了http://weavora.com/blog/2012/02/07/android-and-how-to-use-animated-gifs/這篇文章中的總結。學習
第一種 gone 表示不可見而且不佔用空間測試
第二種 visible 表示可見動畫
第三種 invisible 表示不可見可是佔用空間ui
android view setVisibility():
有三個參數:Parameters:visibility One of VISIBLE, INVISIBLE, or GONE,想對應的三個常量值:0、四、8
VISIBLE:0 意思是可見的
INVISIBILITY:4 意思是不可見的,但還佔着原來的空間
GONE:8 意思是不可見的,不佔用原來的佈局空間.net
這三種狀況元素都沒有銷燬。
1.當動畫界面不可見時移除動畫
2.測試fragment不可見時是否銷燬了所在View
3.代碼點擊了「病例」按鈕進入學習考試欄
CaseHistory.java//滑動切換的時候銷燬當前的組件
@Override
public void destroyItem(ViewGroup container, int position,
Object object) {
((ViewPager) container).removeView(viewContainter.get(position));
}
4.修改了Orthodontics類名。
5.解決了Orthodontics類中方案動畫點擊事件bug。
6.從新寫了方案動畫的xml文件
7.別忘了禁用View的硬件加速功能 myView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
8. 只能先設置setContentView(R.layout.activity_orthodontics_case);才能用findViewById去獲取其中的組件。