【Android 非常基础】android开发小技巧

总结一下开发的小技巧,供各位参考。

1.控件执行animation不起作用。

在执行animation之前,要保证view是可见或占位的,否则动画不作用。(当时也不知道为什么会犯这种错误)

2.ListView.getCount,Adapter.getCount以及getChildCount()方法

Adapter.getCount()返回数据item数量,不包括头尾;

ListView.getCount()返回控件数量(屏幕中可视的控件数),包括HeadView和FootView;

ListView.getChildCount()返回当前屏幕显示的item数量;

3.dp

使用dp做度量单位,不能达到控件按比例分配满屏的效果,因为dp跟像素密度有关,如果屏幕分辨率高,但是像素密度低,就有可能达不到效果。

4.控件获取焦点

View.setFoucus(true);
View.setFoucesInTouchMode(true);
View.requestFoucs();

5.权重

权重值越大,控件比例越大。哪个方向上需要使用权重,则那个方向的值就设为0dp,这是官方建议写法。例如横向需要设置权重,则layout_widht="0dp"。

网上说的什么设置wrap_content或者match_parent都是不正确的用法。

6.StringBuffer与StringBuilder

StringBuffer与StringBuilder类似,都是在字符串需要做修改时使用,不过前者是线程安全,在多线程情况下常用,后者线程不安全,在单线程情况下使用多。

7.监听软键盘回车键

重写activity的dispatchTouchEvent方法,判断event.getKeyCode() == KeyEvent.KEYCODE_ENTER是否成立。

8.listSelector属性

设置item点击效果时,引用selector。一般会把selector放在drawable文件夹里面,如果是这样的话,属性是drawable  <item android:drawable="@drawable/图片" >。

如果想使用color值,那么可以把selector放在color文件夹里,属性就是color <item android:color="@color/颜色值" >。(这个一位哥们告诉我的)

比较简单的设置listSelector的方法,listSelector="@android:color/black"直接设置颜色值,点击效果为黑色,常态为透明。

9.获取屏幕分辨率等参数比较靠谱的方法

DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
dm.widthPixels;
dm.heightPixels;
还可以在自定义view中直接获取屏幕参数(这也是一位哥们告诉我的):
<pre name="code" class="html">DisplayMetrics metrics = getResources().getDisplayMetrics();
metrics.widthPixels;
metrics.heightPixels;

 10.activity dispatchTouchEvent 

所有屏幕的touch事件都是由这个方法分发,在事件分发给window之前调用

11.view clickable方法

clickable 表示其能处理Touch事件,故其的onInterceptTouchEvent方法将事件传递给自己的onTouchEvent方法处理

12.SQLite   onCreate方法执行时机

在调getReadableDatabase或getWritableDatabase时,会判断指定的数据库是否存在,不存在则调SQLiteDatabase.create创建, onCreate只在数据库第一次创建时才执行 

13.ContentProvider onCreate方法执行时机

onCreate方法执行得非常早,比Application onCreate方法还早执行,应用一开始加载它就会先执行。当然啦,这是在数据库不存在的情况下。

14.全局变量的使用

尽量不要在Activity或Service中声明public或者protect静态变量来给别的类使用,因为这没有意义,而且静态变量是常驻内存,生命周期很长,会很耗资源。全局变量最好是写在Application中,通过一个get方法来获取。

15.scrollTo和scrollBy的使用

用Scroller类实现滑动效果,这很多人都知道。使用Scroller,其实最本质也是通过调用view的scrollTo来实现的。很多人在刚开始用Scroller时用不好,往往达不到预期的效果,是因为对这个方法理解有误(我就是这样的)。View.scrollTo(),这是使View的子控件或者内容(文本之类)执行移动,而非View本身,scrollBy也是同理,谨记这一点就能实现效果了。

如果要移动View本身,可以使用如下的方法:

public void offsetLeftAndRight(int offset)用于左右移动
public void offsetTopAndBottom(int offset)用于上下移动

16.this对象

this.getClass()获取当前运行的(被装载的)类,需要考虑继承关系;
this.方法/属性是获取当前类(不需要考虑继承)的方法/属性。

17.中断http请求

HttpClient一般会作为单例使用,多个请求都是复用这一个client,所以想要中断请求,应该是中断HttpGet或者HttpPost才对。httpGet通过调用abort方法来中断释放资源,而urlconnection则可调用disconnect。

18.activity去掉标题方法

通过在onCreate方法的setContentView之前执行requestWindowFeature(Window.FEATURE_NO_TITLE);

也可通过在配置文件中对activity或application设置属性@android:style/Theme.NoTitleBar;

两者方式实现有一个比较明显的区别,通过第一次实现的话,在启动activity时,标题栏会先出现,然后再消失,而第二种方式没有这样的缺陷。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值