Android小知識(shí)點(diǎn)整理

RadioButton和CheckBox使用

在代碼控制RadioButton的狀態(tài)进萄,狀態(tài)改了,但是UI沒有變磁玉,做法是使用CheckBox停忿。
如果有下圖這種需求,多個(gè)支付操作蚊伞,在切換的時(shí)候不想讓RadioButton有點(diǎn)擊操作席赂,而是通過控制外層ViewGroup的點(diǎn)擊來控制RadioButton的UI,需要設(shè)置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及以上設(shè)置狀態(tài)欄指定顏色或者透明

 /**
     * 設(shè)置狀態(tài)欄顏色
     */
    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);
                // 生成一個(gè)狀態(tài)欄大小的矩形
                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,"設(shè)置狀態(tài)欄透明異常时迫,方法名:setStatusBarColor");
        }
    }

    /**
     * 獲取手機(jī)狀態(tài)欄高度
     * @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;
    }

隱藏狀態(tài)欄

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

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

Android中顏色透明度對(duì)應(yīng)16進(jìn)制值

<!--百分比-開頭字母-->
<!--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 點(diǎn)擊返回回到MainActivity 。這個(gè)地方會(huì)有一個(gè)問題就是在進(jìn)入HomeActivity之后掠拳,點(diǎn)擊返回會(huì)回到MainActivity ,但是應(yīng)該是結(jié)束應(yīng)用才對(duì)癞揉。

如何在當(dāng)前頁(yè)面finish掉其他的界面呢,方法當(dāng)然會(huì)有很多溺欧,建議使用EventBus發(fā)送消息喊熟。

Android打開各種類型的文件、預(yù)覽不同類型的文件

/** 
 * 打開一個(gè)文件 
 *  
 * @param filePath 
 *  文件的絕對(duì)路徑 
 */  
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動(dòng)態(tài)全屏
在activity中設(shè)置如下代碼芥牌,在對(duì)應(yīng)的fragment的setUserVisibleHint調(diào)用。

/**
     * 控制是否全屏
     * @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);
        }
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末聂使,一起剝皮案震驚了整個(gè)濱河市壁拉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌柏靶,老刑警劉巖弃理,帶你破解...
    沈念sama閱讀 217,734評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異屎蜓,居然都是意外死亡痘昌,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門梆靖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來控汉,“玉大人,你說我怎么就攤上這事返吻」米樱” “怎么了?”我有些...
    開封第一講書人閱讀 164,133評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵测僵,是天一觀的道長(zhǎng)街佑。 經(jīng)常有香客問我谢翎,道長(zhǎng),這世上最難降的妖魔是什么沐旨? 我笑而不...
    開封第一講書人閱讀 58,532評(píng)論 1 293
  • 正文 為了忘掉前任森逮,我火速辦了婚禮,結(jié)果婚禮上磁携,老公的妹妹穿的比我還像新娘褒侧。我一直安慰自己,他們只是感情好谊迄,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評(píng)論 6 392
  • 文/花漫 我一把揭開白布闷供。 她就那樣靜靜地躺著,像睡著了一般统诺。 火紅的嫁衣襯著肌膚如雪歪脏。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,462評(píng)論 1 302
  • 那天粮呢,我揣著相機(jī)與錄音婿失,去河邊找鬼。 笑死啄寡,一個(gè)胖子當(dāng)著我的面吹牛豪硅,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播挺物,決...
    沈念sama閱讀 40,262評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼舟误,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了姻乓?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,153評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤眯牧,失蹤者是張志新(化名)和其女友劉穎蹋岩,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體学少,經(jīng)...
    沈念sama閱讀 45,587評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡剪个,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了版确。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片扣囊。...
    茶點(diǎn)故事閱讀 39,919評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖绒疗,靈堂內(nèi)的尸體忽然破棺而出侵歇,到底是詐尸還是另有隱情,我是刑警寧澤吓蘑,帶...
    沈念sama閱讀 35,635評(píng)論 5 345
  • 正文 年R本政府宣布惕虑,位于F島的核電站坟冲,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏溃蔫。R本人自食惡果不足惜健提,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望伟叛。 院中可真熱鬧私痹,春花似錦、人聲如沸统刮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽网沾。三九已至癞蚕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間辉哥,已是汗流浹背桦山。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留醋旦,地道東北人恒水。 一個(gè)月前我還...
    沈念sama閱讀 48,048評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像饲齐,于是被迫代替她去往敵國(guó)和親钉凌。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容