第二步,定义一个对话框样式,放到res/values/styles.xml,如下所示:
第三步,创建一个视图配置文件res/layout/float_activity.xml,一个ImageView和一个TextView,如下所示:
第四步创建我们的Activity,如下所示:
-
public
class
FloatActivityDemo
extends
Activity {
-
@Override
-
public
void
onCreate(Bundle savedInstanceState) {
-
super
.onCreate(savedInstanceState);
-
-
requestWindowFeature(Window.FEATURE_NO_TITLE);
-
-
setContentView(R.layout.float_activity);
-
-
}
-
}
最后一步,更改应用程序配置文件AndroidManifest.xml,将我们刚才创建的样式应用到我们的Activity上,如下所示:
-
<
activity
android:name
=
".FloatActivityDemo"
android:theme
=
"@style/Theme.FloatActivity"
>
-
<
intent-filter
>
-
<
action
android:name
=
"android.intent.action.MAIN"
/>
-
<
category
android:name
=
"android.intent.category.LAUNCHER"
/>
-
</
intent-filter
>
-
</
activity
>
正常情况下,我们开发的应用程序都会上占满整个屏幕,那么怎么样才能开发出自定义窗口大小的的程序呢?如下图所示: 实现起来非常简单。 第一步,创建一个背景配置文件float_box.xml,放到res/drawable下,如下所示(如看不懂可查看本站:): Xml代码 xml version="1.0" encoding="utf-8"?>
我们经常看到,点开任务栏的消息通知,会弹出一个不是全屏的窗口,我们可以用
Activity
模拟那个窗口:
实现的效果如下:
在
Android
Mainfest.xml中设置安卓风格为:
android
:
theme
="@
android
:style/
Theme
.Dialog"新建
activity
_main.xml:<?xml version="1.0" encoding="utf-8"?>
<Linear
WindowManager m = getWindowManager();
Display d = m.getDefaultDisplay(); //为获取屏幕宽、高
android
.view.WindowManager.LayoutParams p = getWindow().getAttributes(); //获取对话框当前的参数值
p.height = (int) (
private void setWinWidth() {
DisplayMetrics metric = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metric);
LayoutParams p = getWindow().getAttribu
在
Android
系统中,
Activity
窗口的大小是由WindowManagerService服务来计算的。WindowManagerService服务会根据屏幕及其装饰区的大小来决定
Activity
窗口的大小。一个
Activity
窗口只有知道自己的大小之后,才能对它里面的UI元素进行测量、布局以及绘制。
一般来说,
Activity
窗口的大小等于整个屏幕的大小,但是它并不占据着整块屏幕。为了理解这一点,我们首先分析一下
Activity
窗口的区域是如何划分的。
我们知道,
Activity
窗口的上方一般会有一个
这里我说关键的地方,就是
自定义
Activity
的窗体大小.
这个登录框它不是一个Dialog,而是一个
Activity
.
如何定义,即把
Activity
的
主题
设置为
Theme
.Dialog
android
:
theme
="@style/my
theme
" />
my
theme
.xml是我
自定义
的
主题
my
theme
.xml:
1.在
Android
Manifest.xml文件中设置当前需要改变成窗口样式的
Activity
的
主题
theme
属性,即
android
:
theme
="@
android
:style/
Theme
.Dialog"
2.
自定义
主题
样式继承Dialog样式
(1)在style.xml文件中
自定义
一个
主题
样式<style name="
Theme
.MyDialog" parent="
android
:styl
DisplayMetrics metric = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metric);
int width = metric.widthPixels; // 屏幕宽度(像素)
int height = metric.heightP
[code="java"]
// 设置窗口属性的参数
WindowManager.LayoutParams layoutparams= getWindow().getAttributes();
//设置窗口高度与宽度 单位:像素
layoutparams.height=200;
layoutparams.weight=200;
//设置窗口垂直方向的位置
layoutpara...
大宁其实有点傻:
handler.handleMessage(msg) 和 handler.sendEmptyMessage()运行在主线程吗?
handler.handleMessage(msg) 和 handler.sendEmptyMessage()运行在主线程吗?
/System.err(16258): android.os.NetworkOnMainThreadException报错
weixin_45431146: