android設置activity透明
⑴ android中怎樣把背景透明
實現方式一(使用系統透明樣式)
通過配置 Activity 的樣式來實現,在 AndroidManifest.xml 找到要實現透明效果的 Activity,在 Activity 的配置中添加如下的代碼設置該 Activity 為透明樣式,但這種實現方式只能實現純透明的樣式,無法調整透明度,所以這種實現方式有一定的局限性,但這種方式實現簡單。
android:theme="@android:style/Theme.Translucent"
<activity
android:name="cn.sunzn.transact.MainActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.Translucent" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
實現方式二(使用自定義透明樣式)
這種方式的實現同樣要配置 Activity 的樣式,只不過這里的樣式是我們自定義的。具體實現過程如下:
1 在 res/values/color.xml 文件下加入一個透明顏色值,這里的 color 參數,是兩位數一個單位,前兩位數是透明度,後面每兩位一對是16進制顏色數字,示例中為白色。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="translucent_background">#80000000</color>
</resources>
2 在 res/values/styles.xml 文件中加入一個自定義樣式,代碼如下。
<!-- item name="android:windowBackground" 設置背景透明度及其顏色值 -->
<!-- item name="android:windowIsTranslucent" 設置當前Activity是否透明-->
<!-- item name="android:windowAnimationStyle" 設置當前Activity進出方式-->
<style name="translucent">
<item name="android:windowBackground">@color/translucent_background</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowAnimationStyle">@android:style/Animation.Translucent</item>
</style>
3 在 AndroidManifest.xml 找到要實現透明的 Activity,在想要實現透明的 Activity 中配置其屬性,代碼如下;也可在該 Activity 的 onCreat() 方法中調用 setTheme(R.style.translucent) 來實現。
<activity
android:name="cn.sunzn.transact.MainActivity"
android:label="@string/app_name"
android:theme="@style/translucent" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
⑵ android studio activity怎麼設置透明背景
Android studio在Manifest.xml中找到對應的activity在裡面加上android:theme="@android:style/Theme.Translucent"即可背景透明,如果還想取消標題欄和全屏的畫可以將style/改為Theme.Translucent.NoTitleBar.Fullscreen
⑶ android怎麼將彈出窗口透明
1. 在res/values 下建立color.xml
<resources>
<color name="transparent_background">#80ffffff</color>
</resources>
PS: #80是透明度的值(即80%透明),ffffff是顏色值(為黑色)
2. 在res/values下建立style.xml
<resources> <style name="Transparent" parent="android:style/Theme.Dialog"> <item name="android:windowBackground">@color/transparent_background</item> <item name="android:windowNoTitle">true</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowAnimationStyle">@+android:style/Animation.Translucent</item> </style></resources>
PS: parent="android:style/Theme.Dialog" 是將activity設置為彈出式窗口
3. 在AndroidManifest.xml中找到要彈出的activity,加入theme:
<activity android:name="ActivityName" android:theme="@style/Transparent" />完成上面設置後,你的activity就已經是透明的了,但是該Activity中的控制項還沒有透明,如果還需要控制項透明,則需要在該activity的代碼中加入如下代碼:
//設置activity中的控制項透明 Window window = getWindow(); WindowManager.LayoutParams wl = window.getAttributes(); wl.flags = WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON; wl.alpha=0.95f;//設置透明度,0.0為完全透明,1.0為完全不透明 window.setAttributes(wl);
⑷ 怎樣通過代碼實現設置Activity背景為透明的,不是通過配置XML文件,是用代碼實現。
-----------------------------FirstActivity.java--------------------------------
packagecom.self;
importandroid.app.Activity;
importandroid.content.Intent;
importandroid.graphics.Color;
importandroid.os.Bundle;
importandroid.view.Gravity;
importandroid.view.View;
importandroid.widget.Button;
importandroid.widget.LinearLayout;
importandroid.widget.TextView;
{
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
//通過代碼創建布局
LinearLayoutlayout=newLinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
layout.setGravity(Gravity.CENTER_VERTICAL);
//添加文本
TextViewtextView=newTextView(this);
textView.setText("我是背景,我是背景,我是背景,我是背景,我是背景"+
"我是測試背景");
textView.setTextColor(Color.RED);
layout.addView(textView);
//添加按鈕
Buttonbutton=newButton(this);
button.setWidth(100);
button.setHeight(60);
button.setText("打開TestActivity");
button.setOnClickListener(newView.OnClickListener(){
publicvoidonClick(Viewv){
Intentintent=newIntent(FirstActivity.this,TestActivity.class);
startActivity(intent);
}
});
layout.addView(button);
layout.setBackgroundColor(Color.BLUE);
setContentView(layout);
}
}
--------------------------------TestActivity.java-------------------------------------------
packagecom.self;
importandroid.app.Activity;
importandroid.content.res.Resources;
importandroid.graphics.Color;
importandroid.graphics.drawable.Drawable;
importandroid.os.Bundle;
importandroid.view.Gravity;
importandroid.view.Window;
importandroid.widget.LinearLayout;
importandroid.widget.TextView;
{
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
Resourcesres=getResources();
Drawabledrawable=res.getDrawable(R.drawable.nocolor);////注意該nocolor圖片是透明的
this.getWindow().setBackgroundDrawable(drawable);
//通過代碼創建布局
LinearLayoutlayout=newLinearLayout(this);
layout.setOrientation(LinearLayout.HORIZONTAL);
layout.setGravity(Gravity.CENTER_VERTICAL);
//添加文本
TextViewtextView=newTextView(this);
textView.setText("我是上一層的文字啊,我是上一層的文字啊,我是上一層的文字啊");
textView.setTextSize(30);
textView.setTextColor(Color.GREEN);
layout.addView(textView);
setContentView(layout);
}
}
效果圖:
⑸ 強制將activity設為可調整大小
具體做法和dialog窗口的設置類似,只需要在onCreate方法中,加入下列代碼,既可以控制大小
Andriod中自定義Dialog樣式的Activity點擊空白處隱藏軟體盤(Dialog不消失)一.需求觸發場景:項目中需要出發帶有EditText的Dialog顯示,要求在編輯完EditText時,點擊Dilog的空白處隱藏軟鍵盤.但是Dialog不會消失.示例如下:二.實現方法:發布需...將Activity設置成半透明的對話框。將Activity設置成半透明的對話框在定義Activity時指定Theme.Dialog主題就可以將Activity設置成對話框風格.通過修飾Theme.Dialog主題的android:wind...Activity使用Dialog樣式導致點擊空白處自動關閉的問題。
將Activity設置成窗口的樣式實現Dialog或者Popupwindow效果在開發中是很常用的一種方式,在AndroidMenifest.xml中將需要設置的Activity增加android:t...
⑹ 如何實現Android透明導航欄
實現功能
1.步驟:
1) 創建一個工程,主布局就先做一個ImageView,自己找個好看的圖片做src。
2) 在Activity重寫的onCreate方法中獲得窗口視圖對象(DecorView)
3) 設置DecorView的SystemUiVisibility
4) 設置導航條、狀態欄的顏色–>透明
5) 獲取當前Activity的ActionBar並隱藏
2.具體代碼和注釋:
獲取DecorView對象
@Override
protectedvoidonCreate(BundlesavedInstanceState){
...
ViewdecorView=getWindow().getDecorView();
...
}
設置SystemUiVisibility
intoption=View.SYSTEM_UI_FLAG_FULLSCREEN//全屏標記
|View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN//布局全屏標記,避免退出全屏模式時內容被覆蓋
|View.SYSTEM_UI_FLAG_HIDE_NAVIGATION//隱藏導航欄標記
|View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION//布局隱藏導航欄標記,同理
|View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY//粘性沉浸體驗
|View.SYSTEM_UI_FLAG_LAYOUT_STABLE;//確保上述標記穩定//此方法用來設置系統UI的可見性,系統UI包括狀態欄、ActionBar、導航欄devorView.setSystemUiVisibility(option);
設置狀態欄、導航欄的顏色:
getWindow().setStatusBarColor(Color.TRANSPARENT);//Color.TRANSPARENT=0表示#00000000即透明顏色
getWindow().setNavigationBarColor(Color.TRANSPARENT);
獲取本頁面的ActionBar並隱藏起來
ActionBaractionBar=getSupportActionBar();//注意:此處用的Activity繼承的是
AppCompatActivity(它繼承的是FragmentActivity)
//所以調用的是getSupport...方法,如果繼承Activity則直接調用get...方法
assertactionBar!=null;//這一句可以不理會,反正我是Ctrl+F1提示出來的,意思其實是判斷如果actionBar不為空則向下執行。
actionBar.hide();
注意:最後一點注意事項是:只支持Android API 21以上的手機
⑺ android activity 怎麼設置一半透明
可以使用系統自帶的透明樣式清單文件里設置:android:theme="@android:style/Theme.Translucent">
⑻ 怎麼讓activity透明到桌面
一個完全透明的Activity有很多用處,比如在應用啟動的時候,可以用它處理根據用戶是否登錄的狀態來跳轉相應界面的情況,實際上微信啟動的時候就是做了這種效果、或者在Server檢測版本更新的時候彈出它來顯示對話框,也可以變出很多花樣來巧妙的解決不同的需求,而要實現這樣的一個Activity是非常的簡單的,我們只需要一個樣式就能完美解決:
在theme.xml中添加:
<style name="TranslucentTheme">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowAnimationStyle">@android:style/Animation</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
在AndroidManifest.xml中給你的Activity設置一下theme:
<activity
android:name=".YourActivity"
android:theme="@style/TranslucentTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>