1.Activity全透明
同学zzm给了这个有趣的代码,现在公布出来。
先在res/values下建colors.xml文件,写入:
<? xml version = "1.0" encoding = "UTF-8" ?>
< resources >
< color name = "transparent" > #9000 </ color >
</ resources >
这个值设定了整个界面的透明度,为了看得见效果,现在设为透明度为56%(9/16)左右。
再在res/values/下建styles.xml,设置程序的风格
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Transparent">
<item name="android:windowBackground">@color/transparent</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowAnimationStyle">@+android:style/Animation.Translucent</item>
</style>
</resources>
最后一步,把这个styles.xml用在相应的Activity上。即在AndroidManifest.xml中的任意<activity>标签中添加
android:theme = "@style/transparent"
如果想设置所有的activity都使用这个风格,可以把这句标签语句添加在<application>中。
最后运行程序,哈哈,是不是发现整个界面都被蒙上一层半透明了。最后可以把背景色#9000换成#0000,运行程序后,就全透明了,看得见背景下的所有东西可以却都操作无效。呵呵....
2.Dialog全透明
1.准备保留边框的全透明素材如下图:
2.在values中新建一styles.xml文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<style name="TANCStyle" parent="@android:style/Theme.Dialog">
<!-- 更换背景图片实现全透明 -->
<item name="android:windowBackground">@drawable/panel_background_sodino1</item>
<!-- 屏幕背景不变暗 -->
<item name="android:backgroundDimEnabled">false</item>
<!-- 更改对话框标题栏 -->
<item name="android:windowTitleStyle">@style/TitleStyle</item>
</style>
<style name="TitleStyle" parent="@android:style/DialogWindowTitle">
<item name="android:textAppearance">@style/TitleText</item>
</style>
<style name="TitleText" parent="@android:style/TextAppearance.DialogWindowTitle">
<!-- 设置Dialog标题栏文字颜色。 -->
<item name="android:textColor">#000</item>
</style>
</resources>
3.在layout文件夹下新建一文件句为main_dialog.xml,内容如下:
view plaincopy to clipboardprint?
<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#0000">
<ScrollView android:id="@+id/ScrollView01"
android:layout_width="wrap_content"
android:layout_height="200px"
android:layout_below="@+id/ImageView01"
android:background="#0000">
<TextView android:id="@+id/TextView01"
android:text="SodinoText"
android:textColor="#f000"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#0000"
></TextView>
</ScrollView>
<Button android:id="@+id/btnCancel"
android:layout_below="@id/ScrollView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="Cancel">
</Button>
</RelativeLayout>
<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#0000">
<ScrollView android:id="@+id/ScrollView01"
android:layout_width="wrap_content"
android:layout_height="200px"
android:layout_below="@+id/ImageView01"
android:background="#0000">
<TextView android:id="@+id/TextView01"
android:text="SodinoText"
android:textColor="#f000"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#0000"
></TextView>
</ScrollView>
<Button android:id="@+id/btnCancel"
android:layout_below="@id/ScrollView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="Cancel">
</Button>
</RelativeLayout>
4.Activity代码如下:
view plaincopy to clipboardprint?
package lab.sodino.tanc;
import android.app.Activity;
import android.app.Dialog;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class TANCAct extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btnShow = (Button) findViewById(R.id.btnShow);
btnShow.setOnClickListener(new Button.OnClickListener() {
public void onClick(View view) {
showTANC(
"This is my custom dialog box",
"TextContent\nWhen a dialog is requested for the first time, Android calls onCreateDialog(int) from your Activity, which is where you should instantiate the Dialog. This callback method is passed the same ID that you passed to showDialog(int). After you create the Dialog, return the object at the end of the method.",
"http://blog.csdn.net/sodino");
}
});
}
private void showTANC(String header, String content, String url) {
final Dialog dialog = new Dialog(this, R.style.TANCStyle);
dialog.setContentView(R.layout.main_dialog);
dialog.setTitle(header);
dialog.setCancelable(true);
TextView textView01 = (TextView) dialog.findViewById(R.id.TextView01);
textView01.setText(content + content + content);
Button btnCancel = (Button) dialog.findViewById(R.id.btnCancel);
btnCancel.setOnClickListener(new Button.OnClickListener() {
public void onClick(View view) {
dialog.cancel();
}
});
dialog.show();
}
}
package lab.sodino.tanc;
import android.app.Activity;
import android.app.Dialog;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class TANCAct extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btnShow = (Button) findViewById(R.id.btnShow);
btnShow.setOnClickListener(new Button.OnClickListener() {
public void onClick(View view) {
showTANC(
"This is my custom dialog box",
"TextContent\nWhen a dialog is requested for the first time, Android calls onCreateDialog(int) from your Activity, which is where you should instantiate the Dialog. This callback method is passed the same ID that you passed to showDialog(int). After you create the Dialog, return the object at the end of the method.",
"http://blog.csdn.net/sodino");
}
});
}
private void showTANC(String header, String content, String url) {
final Dialog dialog = new Dialog(this, R.style.TANCStyle);
dialog.setContentView(R.layout.main_dialog);
dialog.setTitle(header);
dialog.setCancelable(true);
TextView textView01 = (TextView) dialog.findViewById(R.id.TextView01);
textView01.setText(content + content + content);
Button btnCancel = (Button) dialog.findViewById(R.id.btnCancel);
btnCancel.setOnClickListener(new Button.OnClickListener() {
public void onClick(View view) {
dialog.cancel();
}
});
dialog.show();
}
}
最后效果图
分享到:
相关推荐
在Android开发中,有时我们需要创建一个看起来像是对话框(Dialog)的Activity,这种情况下,我们需要对Activity进行特殊配置,使其呈现出对话框的样式。本文将详细介绍如何实现Android中的Dialog风格弹出框的...
Android 所有Dialog 对话框 大合集 详解【附源码】 Android自定义View研究-- 一个小Demo Android调用相册拍照实现系统控件缩放切割图片 Android SQLite的实例汇总大全 两分钟彻底让你明白Android Activity生命周期...
在Android开发中,自定义Dialog是一种常见的需求,它允许开发者根据应用的设计风格和功能需求创建独特的对话框。本文将深入探讨如何使用Android源码来实现一个名为HerilyAlertDialog的完全自定义Dialog。这个例子...
5. **Activity样式**:要将Activity设为窗口样式,可在清单文件中设定主题,如`android:theme="@android:style/Theme.Dialog"`,使Activity显示为对话框。 6. **Activity回收及状态保存**:后台Activity可能因内存...
可通过在AndroidManifest.xml中为Activity设置主题来实现,如`android:theme="@android:style/Theme.Dialog"`,使其看起来像一个弹出窗口。 6. **Activity被系统回收的处理** 当Activity被系统回收时,可以通过`...
例如,`android:style/Theme.Translucent`主题可以实现全透明效果。如果需要实现半透明效果,则可以通过继承该主题并进一步自定义来实现: ```xml <style name="Theme.Translucent" parent="android:style/Theme....
Dialog在Android中是一个轻量级的窗口,它浮于应用程序之上,可以半透明或不透明,通常用来显示警告、确认信息或者是提供一种与用户交互的方式。在Android中,我们可以使用`AlertDialog.Builder`来创建一个基本的...
3. **Activity设为窗口样式**:通过修改主题(Theme)实现,例如在AndroidManifest.xml中设置`android:theme="@android:style/Theme.Dialog"`。 4. **退出Activity**:通常使用`finish()`方法退出当前Activity。...
透明Theme可以让Activity在启动时保持全透明,直到界面完全加载完毕,然后一次性显示出来。这种方式给人的感觉是启动速度较慢,但界面刷新同步,视觉效果更加流畅。 接下来,我们需要在`AndroidManifest.xml`中...
标题中的“点击图标进入指定浏览器将首页设置全透明解决一闪而过问题”指的是在Android应用开发中,当用户点击一个图标启动浏览器时,为了避免在打开目标网页前出现一个短暂的空白首页,可以通过设置首页为透明来...
与Dialog不同,PopupWindow并不拥有自己的窗口焦点,因此它可以浮于当前Activity之上,但不影响Activity的交互。 自定义Toast的第一步是创建一个自定义布局文件。在"customToastDialog"目录下,我们可以找到这个XML...
// 设置全透明 getWindow().setAttributes(lp); } }); ``` 4. **背景变暗**:在`PopupWindow`弹出时,有时希望背景变暗,这可以通过改变窗口属性的alpha值实现。在`onDismiss()`方法中恢复原始透明度。 通过...