Android小知识点整理

RadioButton和CheckBox使用

在代码控制RadioButton的状态,状态改了,但是UI没有变,做法是使用CheckBox。
如果有下图这种需求,多个支付操作,在切换的时候不想让RadioButton有点击操作,而是通过控制外层ViewGroup的点击来控制RadioButton的UI,需要设置RadioButton.setOnclickable(false)

1.jpg
<CheckBox
                android:id="@+id/pay_radio_z"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:button="@drawable/radiobutton_background_selector"
                android:layout_centerVertical="true"
                android:layout_alignParentRight="true"
                android:padding="@dimen/dp_10"
                style="@android:style/Widget.DeviceDefault.Light.CompoundButton.RadioButton"/>

Android4.4及以上设置状态栏指定颜色或者透明

 /**
     * 设置状态栏颜色
     */
    public static void setStatusBarColor(Activity activity,boolean isTranslucent) {
        if (activity == null){
            return;
        }
        String activityName = activity.getClass().getSimpleName();
        try {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                View decorView = activity.getWindow().getDecorView();
                int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                        | View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
                decorView.setSystemUiVisibility(option);
                if (isTranslucent){
                    activity.getWindow().setStatusBarColor(Color.TRANSPARENT);
                }
                else {
                     activity.getWindow().setStatusBarColor(ContextCompat.getColor(activity,     R.color.colorAccent));
                }
            }
            else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
                activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
                // 生成一个状态栏大小的矩形
                View statusBarView = new View(activity);
                LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
                        getStatusBarHeight(activity));
                statusBarView.setLayoutParams(params);
                if (isTranslucent){
                    statusBarView.setBackgroundColor(Color.TRANSPARENT);
                }else {
                    statusBarView.setBackgroundColor(ContextCompat.getColor(activity, R.color.colorAccent));
                }
                // 添加 statusView 到布局中
                ViewGroup decorView = (ViewGroup)activity.getWindow().getDecorView();
                decorView.addView(statusBarView);
            }
        } catch (Exception e) {
            e.printStackTrace();
            LogUtil.e(TAG,"设置状态栏透明异常,方法名:setStatusBarColor");
        }
    }

    /**
     * 获取手机状态栏高度
     * @param activity
     * @return
     */
    public static int getStatusBarHeight(Activity activity){
        int resourceId = activity.getResources().getIdentifier("status_bar_height", "dimen", "android");

        int statusHeight = activity.getResources().getDimensionPixelSize(resourceId);

        return statusHeight;
    }

隐藏状态栏

 /**
     * 设置指定界面全屏显示
     * @param context
     */
    public static void setFullscreenMode(Activity context){
        if (context != null) {

            context.getWindow().setFlags(
                        WindowManager.LayoutParams.FLAG_FULLSCREEN,
                        WindowManager.LayoutParams.FLAG_FULLSCREEN);
          }
    }

Android中颜色透明度对应16进制值

<!--百分比-开头字母-->
<!--100% —FF--> 
<!--95% — F2-->
 <!--90% — E6-->
 <!--85% — D9-->
 <!--80% — CC-->
 <!--75% — BF-->
 <!--70% — B3-->
 <!--65% — A6-->
 <!--60% — 99-->
 <!--55% — 8C-->
 <!--50% — 80-->
 <!--45% — 73-->
 <!--40% — 66-->
 <!--35% — 59-->
 <!--30% — 4D-->
 <!--25% — 40-->
 <!--20% — 33-->
 <!--15% — 26-->
 <!--10% — 1A-->
 <!--5% — 0D-->
 <!--0% — 00-->

android 移除栈中指定的activity
需求:MainActivity >> SecondActivity >> ThirdActivity >> HomeActivity,SecondActivity 点击返回回到MainActivity 。这个地方会有一个问题就是在进入HomeActivity之后,点击返回会回到MainActivity ,但是应该是结束应用才对。

如何在当前页面finish掉其他的界面呢,方法当然会有很多,建议使用EventBus发送消息。

Android打开各种类型的文件、预览不同类型的文件

/** 
 * 打开一个文件 
 *  
 * @param filePath 
 *  文件的绝对路径 
 */  
private void openFile(final String filePath)  
{  
    String ext = filePath.substring(filePath.lastIndexOf('.')).toLowerCase(Locale.US);  
    try  
    {  
        MimeTypeMap mimeTypeMap = MimeTypeMap.getSingleton();  
        String temp = ext.substring(1);  
        String mime = mimeTypeMap.getMimeTypeFromExtension(temp);  
  
        Intent intent = new Intent();  
        intent.setAction(android.content.Intent.ACTION_VIEW);  
        File file = new File(filePath);  
        intent.setDataAndType(Uri.fromFile(file), mime);  
        startActivity(intent);  
    }  
    catch (Exception e)  
    {  
        e.printStackTrace();  
        Toast.makeText(getApplicationContext(), "无法打开后缀名为." + ext + "的文件!",  
                Toast.LENGTH_LONG).show();  
    }  
}  

原文地址:http://blog.csdn.net/eieihihi/article/details/45872051

Fragment动态全屏
在activity中设置如下代码,在对应的fragment的setUserVisibleHint调用。

/**
     * 控制是否全屏
     * @param isfull
     */
   public void setFullScreen(boolean isfull){
        if (isfull){
            getWindow().setFlags(
                    WindowManager.LayoutParams.FLAG_FULLSCREEN,
                    WindowManager.LayoutParams.FLAG_FULLSCREEN);
        }
        else {
            WindowManager.LayoutParams attrs = getWindow()
                    .getAttributes();
            attrs.flags &= ~WindowManager.LayoutParams.FLAG_FULLSCREEN;
            getWindow().setAttributes(attrs);
        }
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,588评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,456评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,146评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,387评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,481评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,510评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,522评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,296评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,745评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,039评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,202评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,901评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,538评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,165评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,415评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,081评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,085评论 2 352

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,974评论 25 707
  • UITableView是工程开发中最经常使用到的UI控件,但是你真的了解它嘛,这里记录几点有用的但你可能并不知道的...
    StrongX阅读 4,494评论 44 173
  • 从科伦坡到加勒,约六十公里的海边小火车,走走停停三小时。这一段被称为是千与千寻原型的黄金海岸或许只有坐在贴海的小火...
    小団子阅读 179评论 0 0
  • 作为一个从来不会在正版音乐上吝啬花钱的音乐爱好者,作为一个从05年开始到现在、每年坚持购买周杰伦台湾正版实体专辑的...
    阡陌PM阅读 696评论 0 0