android细小知识点整理
在开发android的过程中,经常会遇到一些细小简单的知识点记不太清了。然后又得花时间到网上查,针对这个问题今天把一些常用的知识进行整理及说明。
1.getX,Y 和getRawX,Y;
在event事件中我们常常会在用到getX,getRawX的时间不记得哪个是获取以屏幕左上角为坐标,哪个是以view左上角为坐标,getX以自身View为坐标,getRawX以屏幕为坐标。
2.dp2px,px2dp;
android开发过程中相比dp跟px的转换也是常常会用到的。虽然不是什么难点但还是把代码贴出来方便查看。
设备密度 320*240(0.75) 480*320(1) 1280*720(2)
1 public class DensityUtils { 2 3 public static int dp2px(Context ctx,float num){ 4 float density = ctx.getResources().getDisplayMetrics().density; 5 int px = (int) (num*density+0.5f); 6 return px; 7 } 8 public static int px2dp(Context ctx,float num){ 9 float density = ctx.getResources().getDisplayMetrics().density; 10 int dp = (int) (num/density+0.5f); 11 return dp; 12 } 13 }
3.代码实例化View的几种方式
View.inflate(context, resource, root); //常用
LayoutInflater.from(this).inflate(resource, root);
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
4.EditText实用方法
setSelection(index)//设置光标显示位置
requestFocus();//请求获取焦点
getSelectionStart()//获取光标显示位置
getSelectionEnd()//获取光标结束位置
5.canvas.drawText()坐标计算公式
x= cellWidth/2 - textWidth/2;
y=cellHeight/2 +textHeight/2 +index*cellHeight;
drawText的坐标是以文字的左下角为起点。
paint.getTextBounds可以测量出文字的巨型,从而算出文字的高度跟宽度。
浙公网安备 33010602011771号