加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > C语言 > 正文

Andriod实用代码(2)

发布时间:2020-12-15 00:37:30 所属栏目:C语言 来源:网络整理
导读:1.展开、收起状态栏 statusBarManager = Class.forName("android.app.StatusBarManager"); Method collapse; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { collapse = statusBarManager.getMethod("collapsePanels"); } else { coll

1.展开、收起状态栏

 statusBarManager = Class.forName("android.app.StatusBarManager");
            Method collapse;
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
                collapse = statusBarManager.getMethod("collapsePanels");
            } else {
                collapse = statusBarManager.getMethod("collapse");
            }
            collapse.invoke(sbservice);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
public static final void expandStatusBar(Context ctx) {
    Object sbservice = ctx.getSystemService("statusbar");
    try {
        Class<?> statusBarManager = Class.forName("android.app.StatusBarManager");
        Method expand;
        if (Build.VERSION.SDK_INT >= 17) {
            expand = statusBarManager.getMethod("expandNotificationsPanel");
        } else {
            expand = statusBarManager.getMethod("expand");
        }
        expand.invoke(sbservice);
    } catch (Exception e) {
        e.printStackTrace();
    }
}</code></pre>

用途:可用于点击Notifacation之后收起状态栏

2.获取状态栏高度

 c = null;
        Object obj = null;
        Field field = null;
        int x = 0,statusBarHeight = 0;
        try {
            c = Class.forName("com.android.internal.R$dimen");
            obj = c.newInstance();
            field = c.getField("status_bar_height");
            x = Integer.parseInt(field.get(obj).toString());
            statusBarHeight = context.getResources().getDimensionPixelSize(x);
        } catch (Exception e1) {
            e1.printStackTrace();
        }
        return statusBarHeight;
    }

3.ListView使用ViewHolder极简写法

 T getAdapterView(View convertView,int id) {
        SparseArray viewHolder = (SparseArray) convertView.getTag();
        if (viewHolder == null) {
            viewHolder = new SparseArray();
            convertView.setTag(viewHolder);
        }
        View childView = viewHolder.get(id);
        if (childView == null) {
            childView = convertView.findViewById(id);
            viewHolder.put(id,childView);
        }
        return (T) childView;
    }

用法

    ImageView thumnailView = getAdapterView(convertView,R.id.video_thumbnail);
    ImageView avatarView =  getAdapterView(convertView,R.id.user_avatar);
    ImageView appIconView = getAdapterView(convertView,R.id.app_icon);
}</code></pre>

4.代码切换全屏

//切换到非全屏
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);

5.调用开发者选项中显示触摸位置功能

6.知晓当前是在哪一个活动

  1. 新建一个 BaseActivity 继承自 Activity

  2. 在 BaseActivity 的 onCreate()方法中打印log

  3. 让所有的Activity继承BaseActivity

7.启动Activity的最佳写法

这样写的好处是一样就可以看出来Activity需要哪些参数

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读