Android 备忘

1. 滚动视图 ScrollView
    横向滚动使用 HorizontalScrollView 或者定义 android:scrollbarAlwaysDrawVerticalTrack 为 false

2. 列表视图 ListView
    去掉滚动黑屏 setCacheColorHint(Color.TRANSPARENT);
    去掉选中项橘黄色高亮 setSelector(new ColorDrawable(Color.TRANSPARENT));

3. xml的<selector/>标签对应的类是 StateListDrawable

4. 使用 TextView.setTextColor(int color); 直接设置一个颜色值 0x8AA9C6 后文字不见,原因是颜色值是一个32位整型值,前8位表示透明度,所以正确的颜色值是 0xFF8AA9C6

5. TranslateAnimation只负责实现位移动画效果,并不会真正的改变 View 的位置

6. 以下两个语句
new TranslateAnimation(Animation.ABSOLUTE, fromXValue, Animation.ABSOLUTE, toXValue,
            Animation.ABSOLUTE, fromYValue, Animation.ABSOLUTE, toYValue);
new TranslateAnimation(fromXDelta, toXDelta, fromYDelta, toYDelta);
如果 fromXValue == fromXDelta, toXValue == toXDelta, fromYValue == fromYDelta, toYValue == toYDelta, 那么这两个语句的功能是一样的,因为查看源码可知默认 type 就是 Animation.ABSOLUTE

7. 在 View 的构造函数里面不要对其父 View 进行操作,即不要执行 this.getParent() 或等价的操作,否则会导致父 View 的递归构造
    一般地,在 View 的构造函数里面只处理该 View 自身相关的初始化操作,尽量避免和其他组件交互

8. 清空一个 ImageView(假设变量为iv) 显示的图片:
iv.setImageResource(android.R.color.transparent); 或
iv.setImageBitmap(null); 或
iv.setImageDrawable(null);

9. View 类的 setWillNotDraw 方法:

   /**
     * If this view doesn't do any drawing on its own, set this flag to
     * allow further optimizations. By default, this flag is not set on
     * View, but could be set on some View subclasses such as ViewGroup.
     *
     * Typically, if you override {@link #onDraw} you should clear this flag.
     *
     * @param willNotDraw whether or not this View draw on its own
     */
    public void setWillNotDraw(boolean willNotDraw) {
        setFlags(willNotDraw ? WILL_NOT_DRAW : 0, DRAW_MASK);

    }

  ViewGroup初始化时调用了一个私有方法:initViewGroup,它里面有一句 setFlags(WILL_NOT_DRAW, DRAW_MASK); 相当于调用了setWillNotDraw(true),所以,ViewGroup 默认是透明的。如果我们想要重写onDraw,就需要调用 setWillNotDraw(false);

10. ListView 在 Android 4.0 版本 setOnItemClickListener 有时候点击没反应的解决方案:每次显示界面的时候先把该 ListView 移除,然后再把它加回来就行。参考http://stackoverflow.com/questions/11184987/android-listview-items-not-responding-when-come-back-from-another-activity

11. Canvas.drawText API的第三个参数 y 表示画出来的字符串的底部的纵坐标,注意是底部。

12. FontMetrics 提供字体属性及测量的 API ,参考:
http://mikewang.blog.51cto.com/3826268/871765

转载于:https://www.cnblogs.com/codingthings/archive/2012/11/21/2780065.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值