2016年3月1日Android实习笔记
1:经查资料,Android中gif动画加载共有两种
1)利用WebView,WebView 主要调用三个方法:LoadUrl、LoadData、LoadDataWithBaseURL
2)主要用的是:android中的android.graphics.Movie 这个类,这是android提供给我们的一个非常方便的工具。有些注意点 比如API 11 Android 3.0 Honeycomb (APIlevel 11) 之后不能使用硬件渲染。
/** * 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 表示不可见但是占用空间
android view setVisibility():
有三个参数:Parameters:visibility One of VISIBLE, INVISIBLE, or GONE,想对应的三个常量值:0、4、8
VISIBLE:0 意思是可见的
INVISIBILITY:4 意思是不可见的,但还占着原来的空间
GONE:8 意思是不可见的,不占用原来的布局空间
这三种情况元素都没有销毁。
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去获取其中的组件。