360项目总结01

360手机卫士项目每天总结。

  1. 开源项目导入:把jar包复制到lib目录下。

  2. android:visibility="invisible"
    android:visibility="gone"

    两个的区别。

  3. handler几个常用的api:Handler handler = new Handler(){
    public void handleMessage(android.os.Message msg) {
    switch (msg.what) {
    case:
    break;
    default:
    break;
    }
    Message msg = Message.obtain();
    msg.what = ? msg.obj = ?
    handler.sendMessage(msg);

  4. 拿包名和版本号
    PackageManager packageManager = getPackageManager();
    PackageInfo packageInfo = packageManager.getPackageInfo(getPackageName(), 0);
    int versionCode = packageInfo.versionCode;
    String versionName = packageInfo.versionName;

  5. URL知识总结

  6. 跳转到系统安装页面(packageinstall)
    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.addCategory(Intent.CATEGORY_DEFAULT);
    intent.setDataAndType(Uri.fromFile(arg0.result),
    "application/vnd.android.package-archive");

  7. TextView中可以设置一个ellipsize属性,作用是当文字长度超过textview宽度时的显示方式:

android:ellipsize=”start”—–省略号显示在开头 “…pedia”
android:ellipsize=”end”——省略号显示在结尾 “encyc…”
android:ellipsize=”middle”—-省略号显示在中间 “en…dia”
android:ellipsize=”marquee”–以横向滚动方式显示(需获得当前焦点时)

对于使用marquee即滚动显示方式的,需要当前textview获得焦点才会滚动。所以有时可能因为实际需要,textview未获得焦点或者需要多个textview都同时滚动显示时,可以采用以下办法:

因为判断textview是否处于focused状态是通过它本身isFocused()方法,这样只要此方法返回为true时,即认为处于focused的状态,就可以滚动啦。所以可以通过继承TextView类,并override isFocused()方法来控制是否滚动咯。

另外如果是组合View,外层layout需要加入以下属性来保证focus状态的传递:addStatesFromChildren=”true”

public class FocusedTextView extends TextView {
    // 有style样式的话会走此方法
    public FocusedTextView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }
    // 有属性时走此方法
    public FocusedTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
    // 用代码new对象时,走此方法
    public FocusedTextView(Context context) {
        super(context);
    }
    /**
     * 表示有咩有获取焦点
     * 
     * 跑马灯要运行,首先调用此函数判断是否有焦点,是true的话,跑马灯才会有效果 所以我们不管实际上textview有没有焦点,
     * 我们都强制返回true, 让跑马灯认为有焦点
     */
    @Override
    public boolean isFocused() {
        return true;
    }

}
或者这样子:在<TextView>里
        android:ellipsize="marquee"
        android:focusable="true"
        android:focusableInTouchMode="true"
  • AlertDialog.builder(可扩展)
AlertDialog.Builder builder = new AlertDialog.Builder(this);
        final AlertDialog dialog = builder.create();

        View view = View.inflate(this, R.layout.dailog_input_password, null);
        // dialog.setView(view);// 将自定义的布局文件设置给dialog
        dialog.setView(view, 0, 0, 0, 0);// 设置边距为0,保证在2.x的版本上运行没问题
        dialog.dismiss();
  • md5加密:
public static String encode(String password) {
        try {
            MessageDigest instance = MessageDigest.getInstance("MD5");// 获取MD5算法对象
            byte[] digest = instance.digest(password.getBytes());// 对字符串加密,返回字节数组

            StringBuffer sb = new StringBuffer();
            for (byte b : digest) {
                int i = b & 0xff;// 获取字节的低八位有效值
                String hexString = Integer.toHexString(i);// 将整数转为16进制

                if (hexString.length() < 2) {
                    hexString = "0" + hexString;// 如果是1位的话,补0
                }

                sb.append(hexString);
            }

            return sb.toString();


  • 9png

通过黑色边线来描述图片的拉伸情况和填充文字的方式
上边线表示图片水平拉伸, 左边线表示垂直拉伸
右边线表示垂直填充区域, 下边线表示水平填充区域

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值