Android 学习历程摘要(四)

1. Android hosts文件位于system/etc中,绑IP地址时如果该地址是最后一个,一定要记得回车


2.  异步持有资源报错是指当我们异步操作的时候却对一个已经不可见的视图进行操作,比如操作一个已经不可见的按钮或者刷新一个不可见的界面时会报错,而持有这个类的变量的话是不会报错的,只是会导致这资源一直被持有而不会被系统回收


3. 当一个class被销毁时,其内部所有资源也会被一起销毁,Visibility的可见与不可见不会销毁资源


4. PreferencesActivity与ListActivity需要用到布局文件中的具有android:id="@android:id/list"的ListView,否则setContentView来引入布局文件会报错;而setContentView之后你的所有设置参数项都会添加到这个具有android:id="@android:id/list"的ListView上,如

setContentView(R.xml.news_category_preferences);//R.xml.news_category_preferences是一个包含了进度条以及ListView的布局文件,而在需要隐藏进度条显示相应的参数数据的时候,在主线程中

progressBarView.findViewById(R.id.progress_bar).setVisibility(View.GONE);//隐藏进度条
setPreferenceScreen(getCategoryPreferenceScreen());//设置数据

findViewById(android.R.id.list).setVisibility(View.VISIBLE);//设置ListView可见,即数据可见


5. Activity的四种加载模式总结

6. clearAnimation();用于如果使用setVisibility隐藏无效的情况下,在setVissibility之前使用该函数即可或者调用setAnimation(null),原因是因为当前视图有在进行动画,动画未完成导致视图被持有而无法改变可视性


7. getSharedPreferences(Configuration.SharedPreferences.SHARED_PREFERENCES_FEEDBACK_NAME,Context.MODE_PRIVATE).edit().clear().commit(); clear之后也需要调用commit才会生效


8. 同一个视图接连进行两个动画时,在设置第二个动画之前要clearAnimation(),否则会动画冲突而无效


9. SimpleDateFormat中如果使用hh:mm则是格式化为12小时制的时间,如果是HH:mm则是24小时制的时间


10. WebView的setBlockNetworkImage方法,true表示阻塞图片加载,false为显示图片


11. 要使ImageView图片不拉伸,两点:ImageView的图片显示状态设为:android:scaleType="centerInside";ImageView设置src而不是background,使用函数的话就是setImageResource而不是setBackgroundDrawable,background可以用来设置ImageView被点击时与正常状态下的背景


12. listview与checkbox等控件放在一起存在拖动时checkbox状态混乱,将监听放在初始化checkbox状态的代码之前即可(参见以下文章有详解,GridView状态混乱同理)

http://www.cnblogs.com/wujd/archive/2012/08/17/2635309.html


13. 监听应用程序的安装卸载时IntentFilter一定要addDataScheme("package")否则接收不到intent


14. if (!AnimatorProxy.NEEDS_PROXY) {
           AnimatorProxy.wrap(mTouchedView).setTranslationX(0);
     }//SDK11以上版本需要进行这个适配,将view归为到0,否则下次再看到这个view时会在之前滑动到的最后的位置上


15. com.ant.liao.GifView 使用该JAR包时在布局中定义需要加上完整包名,否则会报找不到GifView的错误,此条理论上可推广至前天第三方控件,附:不推荐GifView,android对GIF图片不支持直接播放,需要我们进行解码图片然后逐帧播放,这是非常消耗内存的,随时都会OOM,该框架第二个版本声称解决OOM问题,其实支持将该错误TRY/CATCH起来而已,无崩溃但是播放GIF异常卡顿的原因在此


16. ProgressBar如果有锯齿等问题就按照系统的loading图片大小格式做一份就可解决


17. intent并不是全部都可以进行AndroidManifest中配置拦截,如INTENT.ACTION_SCREEN_OFF等只能在代码中进行注册拦截,进而存在注册该intent的类被关闭后只能拦截静态注册的intent而无法拦截动态注册的intent的问题


18. 建议TableRow下不要再放布局,TableRow可以设置列数或自动缩放等属性


19. 要获取LinearLayout的height可以给该LinearLayout设置一个id,通过id得到LinearLayout对象,就可以getHeight()取得height的值,但是获取的值是跟你设置有关的,如果你的LinearLayout的height设置是fill_content或wrap_content,当然是取得-1或-2.如果你给其指定一个值,就可以获取得到。一般上都是通过layout.getLayoutParams().height = 50;修改LinearLayout的值。也可以直接在xml文件中修改


20. Android频繁更新TextView导致TextView移动过程中突然回到原处的解决方法:

当TextView设置布局大小为WRAP_CONTENT时,当其被调用setText这个函数时,会先触发setText(""),然后setText("实际内容"),具体的原理有待进一步确认,目前解决方法为设置TextVIew固定大小


21. 安卓坐标系学习


22. 图片资源一般一开始先放在res下的drawable-hdpi中,assets放置如字体、文本、jar包等静态资源,不放置图片


23.不要因为测试而去更改实现代码,要自己写一层测试代码,客户端单元测试学习


24.findViewById需要当前的布局中有这个ID才能找到,可以使用LayoutInflater将其inflate进来然后用该View去调用


25.类中的private static final String TAG = “类名”是用于打印Log消息中的TAG,或者是fragment中的tag标识


26.CheckboxPreference会自动保存我们上一次操作的值,设置android:persistent="false"可以取消该功能,更详尽的介绍看下述文章

http://biancheng.dnbcw.info/shouji/371737.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值