Android学习笔记1

1.View重绘顺序    ondraw--->dispatchDraw(子控件)  

invalidate() / postInvalidate() 通知系统重绘

继承ViewGroup  重写ondraw需设置setWillNotDraw(false) / 设置背景


2.dp转px

[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. public int dipTopx(float dpValue) {  
  2.         // 获取屏幕像素比例  
  3.         final float scale = getContext().getResources().getDisplayMetrics().density;  
  4.         return (int) (dpValue * scale );  
  5.     }  

3.点击事件系统调用顺序

首先触发ACTIVITY的dispatchTouchEvent

然后触发ACTIVITY的onUserInteraction

然后触发LAYOUT的dispatchTouchEvent

然后触发LAYOUT的onInterceptTouchEvent

参考:

http://blog.csdn.net/G_rrrr/article/details/4861189

http://blog.csdn.net/ddna/article/details/5473293

子View通知父VIew不拦截监听

requestDisallowInterceptTouchEvent(相当于onInterceptTouchEvent强制返回false)


4.listview  

   背景透明 cacheColorHint=“#00000000”      

  去除上下黑边android:fadingEdge="none"   代码   setVerticalFadingEdgeEnabled(false) / setFadingEdgeLength(length)

http://blog.csdn.net/avenleft/article/details/7334060


5. viewpager、GridView等控件去蓝色渐变 setOverScrollMode(View.OVER_SCROLL_NEVER);


6.多语言切换

代码切换本程序语言

[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. Resources resources = getResources();//获得res资源对象  
  2. Configuration config = resources.getConfiguration();//获得设置对象  
  3. DisplayMetrics dm = resources .getDisplayMetrics();//获得屏幕参数:主要是分辨率,像素等。  
  4. config.locale = Locale.US; //设置语言  
  5. resources.updateConfiguration(config, dm);  
参考: http://blog.csdn.net/jiangxinyu/article/details/8597746


7.监听view生成宽高

[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. ViewTreeObserver vto = view.getViewTreeObserver();  
  2.   
  3.       vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener()  
  4.       {  
  5.           public boolean onPreDraw()  
  6.           {  
  7.               int height = metroLayout.getMeasuredHeight();  
  8.               int width = metroLayout.getMeasuredWidth();  
  9.               return true;  
  10.           }  
  11.       });  

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页