Android学习笔记

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;
            }
        });


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值