風兒帶你創(chuàng)建一個透明Activity

前言

寫了那么多頁面焚辅,和這么多Activity對著干映屋。有一天要寫一個透明Activity,竟然思考半天同蜻。棚点。。說多了都是淚巴迓L蔽觥!卵蛉!

任務:可以新建透明的Activity

透明的Activity和普通的Activity沒有太大的區(qū)別颁股。沒有什么神圣之處么库,扯遠了吧I邓俊!诉儒!
上代碼:新建Activity;TransparentActivity.class

public class TransparentActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        supportRequestWindowFeature(Window.FEATURE_NO_TITLE);//去掉標題頭
        setContentView(R.layout.activity_transparent);
    }
}

目前是不是沒有區(qū)別葡缰。
布局文件activity_transparent.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.transparentactivity.TransparentActivity">

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="上面的" />


    <Button
        android:id="@+id/button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:text="最下面" />


</RelativeLayout>

從布局文件可以看到有兩個按鈕。從另外一個頁面跳轉(zhuǎn)過來忱反。
顯示如下圖所示

截圖一

現(xiàn)在不是透明的胺菏汀!那我們就讓他變透明温算。怜校。
styles.xml中添加下面的代碼:

    <style name="dialog_activity" parent="@style/Theme.AppCompat.Light.Dialog">
        <!-- 去黑邊 -->
        <item name="android:windowFrame">@null</item>
        <!-- 設(shè)置是否可滑動 -->
        <item name="android:windowIsFloating">true</item>
        <!-- 設(shè)置是否透明 -->
        <item name="android:windowIsTranslucent">false</item>
        <!-- 無標題 -->
        <item name="android:windowNoTitle">true</item>
        <!-- 背景 -->
        <item name="android:background">@null</item>
        <!-- 窗口背景 -->
        <item name="android:windowBackground">@android:color/transparent</item>
        <!-- 是否變暗 -->
        <item name="android:backgroundDimEnabled">true</item>
        <!-- 點擊空白部分activity不消失 -->
        <item name="android:windowCloseOnTouchOutside">true</item>
        <!-- 無標題 有的手機設(shè)置這行代碼-->
        <item name="windowNoTitle">true</item>
    </style>

注意:
1.parent="android:style/Theme.Dialog"parent="@style/Theme.AppCompat.Light.Dialog"根據(jù)自己的activity選擇相應的parent。
2.無標題,也可以向上面一樣注竿,用代碼實現(xiàn)茄茁。。

        <!-- 無標題 -->
        <item name="android:windowNoTitle">true</item>
        <!-- 無標題 有的手機設(shè)置這行代碼-->
        <item name="windowNoTitle">true</item>

AndroidManifest.xml中注冊TransparentActivity代碼如下:

        <activity
            android:name=".TransparentActivity"
            android:theme="@style/dialog_activity"></activity>

運行一下得到下圖:

截圖二

我只是想說這不科學巩割。最下面的按鈕上圖是滿屏的到了這一張圖就是沒有滿屏裙顽。不用懷疑你的眼睛,就是沒有滿屏宣谈。
繼續(xù)修改愈犹,現(xiàn)在我們?nèi)?code>TransparentActivity.class進行操作。

public class TransparentActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        supportRequestWindowFeature(Window.FEATURE_NO_TITLE);//去掉標題頭
        setContentView(R.layout.activity_transparent);




        //窗口對齊屏幕寬度
        Window win = this.getWindow();
        win.getDecorView().setPadding(0, 0, 0, 0);
        WindowManager.LayoutParams layoutParams = win.getAttributes();
        layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT;
        layoutParams.height = WindowManager.LayoutParams.MATCH_PARENT;
        layoutParams.gravity = Gravity.BOTTOM;//設(shè)置對話框在底部顯示
        win.setAttributes(layoutParams);
    }
}

運行一下得到下圖:

截圖三

哎闻丑,好多了漩怎,基本滿足需求了。但是有一個地方還是有點別扭嗦嗡,那就是最上面的狀態(tài)欄勋锤。怎么是黑色的呢?酸钦?繼續(xù)在TransparentActivity.class進行操作怪得。

public class TransparentActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        supportRequestWindowFeature(Window.FEATURE_NO_TITLE);//去掉標題頭
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            //透明狀態(tài)欄
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
        }
        setContentView(R.layout.activity_transparent);

        //窗口對齊屏幕寬度
        Window win = this.getWindow();
        win.getDecorView().setPadding(0, 0, 0, 0);
        WindowManager.LayoutParams layoutParams = win.getAttributes();
        layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT;
        layoutParams.height = WindowManager.LayoutParams.MATCH_PARENT;
        layoutParams.gravity = Gravity.BOTTOM;//設(shè)置對話框在底部顯示
        win.setAttributes(layoutParams);
    }
}

運行一下得到下圖:

截圖四

哎咱枉,還是別扭啊徒恋!上面的按鈕被頂上去了蚕断。繼續(xù)來。入挣。在TransparentActivity.class進行操作亿乳。

public class TransparentActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        supportRequestWindowFeature(Window.FEATURE_NO_TITLE);//去掉標題頭
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            //透明狀態(tài)欄
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
        }
        setContentView(R.layout.activity_transparent);

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            // 設(shè)置根布局的參數(shù)
            ViewGroup rootView = (ViewGroup) ((ViewGroup) findViewById(android.R.id.content)).getChildAt(0);
            rootView.setFitsSystemWindows(true);
            rootView.setClipToPadding(true);
        }
        //窗口對齊屏幕寬度
        Window win = this.getWindow();
        win.getDecorView().setPadding(0, 0, 0, 0);
        WindowManager.LayoutParams layoutParams = win.getAttributes();
        layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT;
        layoutParams.height = WindowManager.LayoutParams.MATCH_PARENT;
        layoutParams.gravity = Gravity.BOTTOM;//設(shè)置對話框在底部顯示
        win.setAttributes(layoutParams);
    }
}

運行一下得到下圖:

截圖五

滿足需求完工。透明Activity的背景径筏,布局都是很靈活的葛假。。滋恬。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末聊训,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子恢氯,更是在濱河造成了極大的恐慌带斑,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件勋拟,死亡現(xiàn)場離奇詭異勋磕,居然都是意外死亡,警方通過查閱死者的電腦和手機敢靡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進店門挂滓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人啸胧,你說我怎么就攤上這事赶站。” “怎么了吓揪?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵亲怠,是天一觀的道長。 經(jīng)常有香客問我柠辞,道長团秽,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任叭首,我火速辦了婚禮习勤,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘焙格。我一直安慰自己图毕,他們只是感情好,可當我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布眷唉。 她就那樣靜靜地躺著予颤,像睡著了一般囤官。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蛤虐,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天党饮,我揣著相機與錄音,去河邊找鬼驳庭。 笑死刑顺,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的饲常。 我是一名探鬼主播蹲堂,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼贝淤!你這毒婦竟也來了柒竞?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤霹娄,失蹤者是張志新(化名)和其女友劉穎能犯,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體犬耻,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年执泰,在試婚紗的時候發(fā)現(xiàn)自己被綠了枕磁。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡术吝,死狀恐怖计济,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情排苍,我是刑警寧澤沦寂,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站淘衙,受9級特大地震影響传藏,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜彤守,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一毯侦、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧具垫,春花似錦侈离、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽铺坞。三九已至,卻和暖如春洲胖,著一層夾襖步出監(jiān)牢的瞬間谣辞,已是汗流浹背澎现。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人程拭。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像嘀掸,于是被迫代替她去往敵國和親涯竟。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,077評論 2 355

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,183評論 25 707
  • ¥開啟¥ 【iAPP實現(xiàn)進入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程卸奉,因...
    小菜c閱讀 6,426評論 0 17
  • Day1: 在代碼中通過R.string.hello_world可以獲得該字符串的引用钝诚; 在XML中通過@stri...
    冰凝雪國閱讀 1,406評論 0 5
  • 第十一天,繼續(xù)著小雨榄棵。 今天突然又想起你了凝颇,去你空間,朋友圈逛逛疹鳄,看到類似于你替我發(fā)的話拧略,很觸心。那瘪弓,始終是個悲傷...
    你好再見_a66e閱讀 113評論 0 0
  • 剩女這個話題已經(jīng)被講了有十年腺怯,直到自己變成剩女的時候袱饭,才覺得原來被剩下是這么容易的事情。 17歲呛占,花兒含苞待放時虑乖,...
    艾米小姐閱讀 511評論 4 4