http://gundumw100.iteye.com/blog/906195

正常情况下,我们开发的应用程序都会上占满整个屏幕,那么怎么样才能开发出自定义窗口大小的的程序呢?如下图所示:

实现起来非常简单。 
第一步,创建一个背景配置文件float_box.xml,放到res/drawable下,如下所示(如看不懂可查看本站:):

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!--
  3. ** Copyright 2010, Ideasandroid
  4. -->
  5. <shape xmlns:android="http://schemas.android.com/apk/res/android">
  6. <solid android:color="#ffffff" />
  7. <stroke android:width="3dp" color="#000000" />
  8. <corners android:radius="3dp" />
  9. <padding android:left="10dp" android:top="10dp" android:right="10dp"
  10. android:bottom="10dp" />
  11. </shape>

第二步,定义一个对话框样式,放到res/values/styles.xml,如下所示:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!-- Copyright (C) 2010 IdeasAndroid
  3. -->
  4. <resources>
  5. <!-- 定义一个样式,继承android系统的对话框样式 android:style/Theme.Dialog-->
  6. <style name="Theme.FloatActivity" parent="android:style/Theme.Dialog">
  7. <!-- float_box为我们定义的窗口背景-->
  8. <item name="android:windowBackground">@drawable/float_box</item>
  9. </style>
  10. </resources>

第三步,创建一个视图配置文件res/layout/float_activity.xml,一个ImageView和一个TextView,如下所示:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!-- Copyright (C) 2010 IdeasAndroid
  3. -->
  4. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  5. android:layout_width="fill_parent"
  6. android:layout_height="fill_parent">
  7. <ImageView
  8. android:id="@+id/ideasandroidlogo"
  9. android:layout_width="wrap_content"
  10. android:layout_height="wrap_content"
  11. android:layout_alignParentTop="true"
  12. android:src="@drawable/ideasandroid"
  13. />
  14. <TextView  android:layout_width="wrap_content" android:text="@string/ideasandroidIntr"
  15. android:layout_height="wrap_content"
  16. android:layout_below="@id/ideasandroidlogo"
  17. android:textColor="@android:color/black"
  18. />
  19. </RelativeLayout>

第四步创建我们的Activity,如下所示:

  1. public class FloatActivityDemo extends Activity {
  2. @Override
  3. public void onCreate(Bundle savedInstanceState) {
  4. super.onCreate(savedInstanceState);
  5. //先去除应用程序标题栏  注意:一定要在setContentView之前
  6. requestWindowFeature(Window.FEATURE_NO_TITLE);
  7. //将我们定义的窗口设置为默认视图
  8. setContentView(R.layout.float_activity);
  9. }
  10. }

最后一步,更改应用程序配置文件AndroidManifest.xml,将我们刚才创建的样式应用到我们的Activity上,如下所示:

  1. <activity android:name=".FloatActivityDemo" android:theme="@style/Theme.FloatActivity">
  2. <intent-filter>
  3. <action android:name="android.intent.action.MAIN" />
  4. <category android:name="android.intent.category.LAUNCHER" />
  5. </intent-filter>
  6. </activity>

自己试一试吧!

Demo下载地址:http://www.ideasandroid.com/android/demo/FloatActivityDemo.rar

android自定义Activity窗口大小(theme运用)的更多相关文章

  1. android自定义Activity窗体大小

    先给大家看图吧: 看,是不是很酷呢,呵呵. 这里我说关键的地方,就是自定义Activity的窗体大小. 这个登录框它不是一个Dialog,而是一个Activity. 如何定义,即把Activity的主 ...

  2. android自定义activity

    今天公司有个需要需要自动弹出界面,而dialog又不符合要求,所以自定义的一个activity的样式 首先在androidmainfest.xml上注册你的activity <activity ...

  3. Android 自定义Activity的标题栏(Titlebar)

    缺省的情况下,通常见到Activity的标题栏(Titlebar)是这样的(红色框内): HandleContacts是Activity的标题.有时候,我们希望能改变一下这样单调的状况.比如,要在标题 ...

  4. Android 自定义Activity基类与TitleBar

    我们在开发App的时候有时候碰到多个界面有一个共同点的时候,比如,都有相同的TitleBar,并且TitleBar可以设置显示的文字.TitleBar上的点击事件,如果给每一个Activity都写一遍 ...

  5. Android自定义Activity酷炫的动画跳转效果

    两个Activity跳转的时候,自定义翻页效果: Intent intent = new Intent(FirstActivity.this, SecondActivity.class);   sta ...

  6. Android 自定义Activity栈对Activity统一管理

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6307239.html public class AppManager { private static St ...

  7. Android中自定义Activity和Dialog的位置大小背景和透明度等demo

    1.自定义Activity显示样式 先在res/values下建colors.xml文件,写入: <?xml version="1.0" encoding="utf ...

  8. Android中自定义Activity和Dialog的位置大小背景和透明度等

    1.自定义Activity显示样式 先在res/values下建colors.xml文件,写入: view plainprint? 1. <?xml version="1.0" ...

  9. [android] 练习样式主题自定义activity切换动画

    主要练习了自定义样式和主题,继承android系统默认的样式并修改,练习xml定义淡入淡出动画 anim/fade_in.xml <?xml version="1.0" en ...

随机推荐

  1. [SQL]躺着也中枪的datetime类型

    写在前面 本来这个东西,我是不想在这里总结的,今天有初学者的朋友问我了,那就不得不说说了,你肯定也踩过这样的坑,没遇到,说明你运气好,编码习惯好.那还是言归正传吧.避免你中枪,还是扫一眼这篇文章吧. ...

  2. iOS - xib中关于拖拽手势的潜在错误

    iOS开发拓展篇—xib中关于拖拽手势的潜在错误 一.错误说明 自定义一个用来封装工具条的类 搭建xib,并添加一个拖拽的手势. 主控制器的代码:加载工具条 封装工具条以及手势拖拽的监听事件 此时运行 ...

  3. VIM 多行注释与取消

    注释: 在使用vim的过程中, 注释是一个比较烦人的事情,要一行一行注释,或者用/* */来注释 下面这种方法可以快捷的进行多行注释. 1.进入vi/vim编辑器,按CTRL+V进入可视化模式(VIS ...

  4. 深入浅出Docker(五):基于Fig搭建开发环境

    概述 在搭建开发环境时,我们都希望搭建过程能够简单,并且一劳永逸,其他的同事可以复用已经搭建好的开发环境以节省开发时间.而在搭建开发环境时,我们经常会被复杂的配置以及重复的下载安装所困扰.在Docke ...

  5. [分享]收集的Linux学习资源

    下面是我收集的一些Linux资源,与大家分享.大家共同学习,一起进步. 国内的专业Linux网站(GB) 1. ChinaUnix:http://www.chinaunix.net/ 2. Linux ...

  6. Oracle自动备份脚本的实现

    问题描述: Oracle自动备份脚本的实现. 错误提示1: Message file RMAN.msb not found Verify that Oracle_HOME is set properl ...

  7. python range函数与numpy arange函数

    1.range()返回的是range object,而np.arange()返回的是numpy.ndarray() range尽可用于迭代,而np.arange作用远不止于此,它是一个序列,可被当做向 ...

  8. IIS7设置IP地址和域名限制

    在IIS中可以通过IP地址域名设置来控制拒绝或允许特定范围内的IP对网站的访问权限,下面简单介绍如何在IIS7.5中设置,如下图,是IIS7.5的主界面 一.安装“IP地址和域限制”功能 选定一个网站 ...

  9. 如何在多个LinearLayout中添加分隔线

      1.可以放置一个ImageView组件,然后将其设为分隔线的颜色或图形.分隔线View的定义代码如下:   2.在Android3.0及以上版本,LinearLayout支持直接显示分隔线. an ...

  10. 滚动侦测scrollspy

    <!doctype html><html> <head><meta charset="utf-8"><meta http-eq ...