Android学习笔记

来源:互联网 发布:淘宝代销是怎么回事 编辑:程序博客网 时间:2024/06/06 12:50

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

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

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


2.dp转px

public int dipTopx(float dpValue) {// 获取屏幕像素比例final float scale = getContext().getResources().getDisplayMetrics().density;return (int) (dpValue * scale );}

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.多语言切换

代码切换本程序语言

Resources resources = getResources();//获得res资源对象Configuration config = resources.getConfiguration();//获得设置对象DisplayMetrics dm = resources .getDisplayMetrics();//获得屏幕参数:主要是分辨率,像素等。config.locale = Locale.US; //设置语言resources.updateConfiguration(config, dm);
参考:http://blog.csdn.net/jiangxinyu/article/details/8597746


7.监听view生成宽高

  ViewTreeObserver vto = view.getViewTreeObserver();        vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener()        {            public boolean onPreDraw()            {                int height = metroLayout.getMeasuredHeight();                int width = metroLayout.getMeasuredWidth();                return true;            }        });


原创粉丝点击