- 浏览: 180012 次
- 性别:
- 来自: 武汉
文章分类
最新评论
-
beiizl:
用了博主的方法和代码,不同证书居然可以正常通讯?
Java SSLSocket的使用 -
SHANGLIJAVA:
sorry,运行时没看清。博主的代码确实没问题。。。
Java SSLSocket的使用 -
SHANGLIJAVA:
YoungeeOne 写道最后一个为什么初始化一个空的证书,也 ...
Java SSLSocket的使用 -
q979713444:
那这个的心跳怎么弄呢
Java SSLSocket的使用 -
43350860:
busybox不是每台机器有安装的, 有没有比较裸的办法获取p ...
android中查看端口占用
1. 自定义标题栏
1.1 常规自定义标题栏
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
自定义Activity的标题栏(Titlebar)
http://www.189works.com/article-51509-1.html
本文仅用到了Window.FEATURE_CUSTOM_TITLE,
Window还有其他一些feature,比如FEATURE_CONTEXT_MENU,FEATURE_NO_TITLE,FEATURE_LEFT_ICON等。
下面是一个来自wfd的完整的例子
wfd中的首页布局文件
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <ListView android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="wrap_content" android:drawSelectorOnTop="false"> </ListView> <TextView android:id="@id/android:empty" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="还没有会议刷新看看" android:gravity="center_horizontal" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="90dp" android:gravity="center_horizontal" android:orientation="vertical" android:layout_alignParentBottom="true"> <Button android:text="发起会议" android:id="@+id/launch" android:layout_width="200dp" android:layout_height="wrap_content"></Button> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center"> <CheckBox android:id="@+id/use_password" android:text="" android:layout_width="wrap_content" android:layout_height="wrap_content"></CheckBox> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="启用密码"></TextView> </LinearLayout> </LinearLayout> <LinearLayout android:id="@+id/home_refresh_bar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="invisible" android:layout_centerInParent="true" android:gravity="center"> <ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content"></ProgressBar> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="正在寻找会议室" android:paddingLeft="3dp"></TextView> </LinearLayout> <LinearLayout android:id="@+id/home_join_bar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="invisible" android:layout_centerInParent="true" android:gravity="center"> <ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content"></ProgressBar> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="正在加入会议室" android:paddingLeft="3dp"></TextView> </LinearLayout> </RelativeLayout>
自定义title的布局
<?xml version="1.0" encoding="utf-8"?> <!-- 首页title布局 --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:layout_height="fill_parent" android:layout_width="fill_parent" android:orientation="horizontal" android:gravity="center_vertical" android:padding="3dp"> <ImageView android:id="@+id/home_app_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/icon" android:paddingRight="5dip"></ImageView> <TextView android:id="@+id/home_app_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/app_name"></TextView> <LinearLayout android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="right" android:layout_gravity="center_vertical"> <ImageView android:id="@+id/home_refresh" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/search_32" android:paddingRight="15dp"></ImageView> <ImageView android:id="@+id/home_options" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/gear_32"></ImageView> </LinearLayout> </LinearLayout> <TextView android:background="@drawable/divider" android:layout_height="1dip" android:layout_width="fill_parent"></TextView> </LinearLayout>
java代码
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); setContentView(R.layout.home); // 设置自定义的title getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.home_custom_title); // 添加一个footview // getListView().addFooterView( // LayoutInflater.from(this).inflate(R.layout.home_foot, null)); mAdapter = new MeetingRoomAdapter(); doAddTestData(); setListAdapter(mAdapter); mRefresh = (ImageView) findViewById(R.id.home_refresh); mOptions = (ImageView) findViewById(R.id.home_options); mRefreshBar = (LinearLayout) findViewById(R.id.home_refresh_bar); mJoinBar = (LinearLayout) findViewById(R.id.home_join_bar); mLaunch = (Button) findViewById(R.id.launch); mUsePwd = (CheckBox) findViewById(R.id.use_password); mUsePwd.setOnCheckedChangeListener(this); mRefresh.setOnClickListener(this); mOptions.setOnClickListener(this); mLaunch.setOnClickListener(this);
效果
1.2 PreferenceActivity的自定义标题栏
PreferenceActivity 自定义title栏出错
http://www.cnblogs.com/slider/archive/2011/11/11/2245149.html
开发WFD过程中也遇到这个"PreferenceActivity 自定义title栏出错"的问题。
经分析,主要原因是因为PreferenceActivity 跟一般Activity不同. PreferenceActivity 的onCreate方法里面执行了setContentView, 而这个方法必须在
requestWindowFeature之后执行。 反映到我们继承自PreferenceActivity 的具体代码中就是, requestWindowFeature(Window.FEATURE_CUSTOM_TITLE)要在super.onCreate(savedInstanceState)前执行
代码如下
public class SettingsActivity extends PreferenceActivity implements Preference.OnPreferenceChangeListener { public static final String KEY_USERNAME = "username"; private EditTextPreference mUsername; @Override protected void onCreate(Bundle savedInstanceState) { // 注意, PreferenceActivity // 里面需要把这个放在super.onCreate(savedInstanceState)前面!!! requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.settings); getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.settings_custom_title); mUsername = (EditTextPreference) findPreference(KEY_USERNAME); mUsername.setSummary(getUsername()); mUsername.setText(getUsername()); mUsername.setOnPreferenceChangeListener(this); } @Override public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { return super.onPreferenceTreeClick(preferenceScreen, preference); } private String getUsername() { String name = PrefUtil.get(this, PrefUtil.PREF_SETTINGS, KEY_USERNAME, Build.MODEL); return name; } @Override public boolean onPreferenceChange(Preference preference, Object newValue) { if (preference == mUsername) { String val = (String) newValue; Logger.d("val = " + val); if (val != null && !val.equals("") && !val.equals(getUsername())) { mUsername.setSummary(val); PrefUtil.set(this, PrefUtil.PREF_SETTINGS, KEY_USERNAME, mUsername.getText()); } } return false; } }
2. 标题栏进度条
http://qing.weibo.com/2617185797/9bff160533000f4l.html?retcode=6102
最关键的位置就是在setContentView之前添加下面的这行代码
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); //设置为圆形旋转进度条
或者
requestWindowFeature(Window.FEATURE_PROGRESS); //设置为水平进度条 注意标题栏的水平进度条最大值是10000,不用自己手动设置
3. Java代码中隐藏标题栏
在Activity.setCurrentView()之前调用此方法
private void hideTitle(){ //TODOAuto-generatedmethodstub requestWindowFeature(Window.FEATURE_NO_TITLE); }
4. Java代码中全屏
在Activity.setCurrentView()之前调用此方法
private void hideStatusBar(){ //TODOAuto-generatedmethodstub // 隐藏标题 requestWindowFeature(Window.FEATURE_NO_TITLE); // 定义全屏参数 intflag=WindowManager.LayoutParams.FLAG_FULLSCREEN; // 获得窗口对象 WindowmyWindow=this.getWindow(); // 设置 Flag标识 myWindow.setFlags(flag,flag); }
5. manifest中全屏
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
6. manifest中隐藏标题栏
android:theme="@android:style/Theme.NoTitleBar"
7. 半透明风格的Activity
android:theme="@android:style/Theme.Translucent"
或者先编写一个color.xml
<?xmlversion="1.0"encoding="UTF-8"?> <resources> <colorname="transparent">#9000</color> </resources>
再编写一个styles.xml
<?xmlversion="1.0"encoding="utf-8"?> <resources> <stylename="Transparent"> <itemname="android:windowBackground">@color/transparent</item> <itemname="android:windowIsTranslucent">true</item> <itemname="android:windowAnimationStyle">@+android:style/Animation.Translucent</item> </style> </resources>
最后使用这个style
android:theme="@style/transparent"
参考http://blog.csdn.net/yuejingjiahong/article/details/6668265
8. 对话框风格的Activity
android:theme="@android:style/Theme.Dialog"
9. 运行时切换全屏
/** * 切换全屏和非全屏 */ private void switchFullScreen() { if (null != switchFullScreenToast) { switchFullScreenToast.cancel(); } if (fullScreen) { getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); switchFullScreenToast = Toast.makeText(this, R.string.exit_full_screen, Toast.LENGTH_SHORT); switchFullScreenToast.show(); } else { getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); switchFullScreenToast = Toast.makeText(this, R.string.enter_full_screen, Toast.LENGTH_SHORT); switchFullScreenToast.show(); } fullScreen = !fullScreen; }
10. 使用自定义style解决自定义title栏高度太小的问题
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="TransparentListView" parent="@android:style/Widget.ListView"> <item name="android:cacheColorHint">@android:color/transparent</item> </style> </resources>
然后使用这个style
<activity android:name=".ui.HomeActivity" android:theme="@style/CmTitleBar"></activity>
发表评论
-
使用Intel HAXM为Android模拟器加速
2013-11-15 17:50 0http://www.tanranran.cn/?p ... -
load bitmap & process bitmap -training系列
2013-11-09 12:11 0http://docs.eoeandroid.com ... -
listview如何高亮显示选中的item
2013-11-03 11:33 0http://stackoverflow.com/qu ... -
ActionBarSharlock配合Navigation Drawer时遇到的小问题
2013-10-27 11:50 0http://stackoverflow.com ... -
Android navi drawer
2013-10-26 21:41 0https://developer.android.c ... -
cache bitmap & display bitmap- training系列
2013-10-26 10:25 0http://developer.android. ... -
博客排版技巧
2013-10-07 18:43 0CnBlogs博文排版技巧 http://www.cnbl ... -
android 传感器之摇一摇
2013-10-07 16:16 0http://blog.csdn.net/xn4545 ... -
android udp广播
2013-10-07 16:14 0http://blog.csdn.net/luzhen ... -
geofence功能
2013-10-07 12:18 0test -
android wifi模块分析
2013-10-04 19:58 0设置、打开wifi热点 http://blog.c ... -
简单试用Android Annotations(2)
2013-10-01 17:15 0一、命名问题 前一篇中提出了一个问题: ... -
简单试用Android Annotations
2013-10-01 11:58 3899参考:试用android annotations ... -
飞鸽协议
2013-09-30 15:13 0http://blog.chinaunix.net/ ... -
zxing二维码
2013-09-30 15:10 0Android之二维码的生成与解析 http://w ... -
android服务发现
2013-09-30 15:06 0不怎么样的博客 upnp研究 http://blog.c ... -
system bin目录下的命令
2013-09-30 13:27 0Android手机WIFI数据开关命令svc教程 h ... -
android jni相关
2013-09-24 14:03 0http://game.ceeger.com/S ... -
service的onStartCommand返回值
2013-09-21 12:16 0http://blog.csdn.net/fr ... -
action bar 2.3
2013-09-20 21:05 0ActionBarSherlock http ...
相关推荐
在"Activity_Theme_Style.rar_activity theme_android"这个压缩包中,包含的资源可能是一个关于如何自定义和应用Android Activity主题的教程。 首先,我们来了解一下Android中的主题系统。Android提供了预定义的...
通过自定义Theme,我们可以实现Activity间切换时的动画效果,这不仅可以提升用户体验,也能让应用更具个性化和专业感。本篇将详细介绍如何利用Theme来定制Activity间的切换动画。 首先,理解Android的Theme和Style...
window.requestFeature(Window.FEATURE_NO_TITLE); // 去掉标题栏 window.setLayout(dialogWidth, dialogHeight); // 设置对话框的宽度和高度 setContentView(R.layout.activity_your); // 初始化UI及事件处理...
This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_SUPPORT_ACTION_BAR 原因一 错误写法: <style name=AppTheme.NoActionBar> ...
描述了window的基本工作原理以及 Activity 和 Toast 使用的基本实现源码大概分析
为了使Activity背景透明,我们需要在对应的Activity标签中添加一个特殊的主题(Theme)。Android系统提供了多种主题供开发者选择,其中包括允许Activity背景透明的选项。例如,我们可以使用`Theme.Translucent....
另外,如果你的Activity不使用AppCompatActivity,而是直接继承自`Activity`,那么你需要使用`getWindow().requestFeature(Window.FEATURE_NO_TITLE)`来去除标题: ```java @Override protected void onCreate...
同时,为了使Activity浮现在屏幕上方,需要设置窗口类型(Window Type)为`TYPE_PHONE`或`TYPE_SYSTEM_ALERT`。 ```xml <style name="AppTheme.FloatActivity" parent="Theme.AppCompat.Dialog"> <!-- Customize...
在Android系统中,WindowManager服务负责管理所有应用的窗口,而Activity实际上就是一种特殊的Window。默认情况下,Activity会全屏显示,但我们可以通过修改Activity的属性和使用自定义布局来改变这一行为。 1. ...
标题中的"activity3activity3activity3activity3activity3activity3activity3a"看起来可能是由于重复输入造成的错误,我们可以简化为"activity3",这通常在编程或软件开发中可能代表一个特定的操作、事件或者组件。...
本文将详细解析从一个Activity(Activity1)跳转到另一个Activity(Activity2),然后再返回到原Activity(Activity1)时,这两个Activity分别会经历哪些生命周期方法。 #### Activity1的生命周期变化 1. **...
在`res/values/styles.xml`文件中,我们可以定义一个新的主题,例如`Theme.AppCompat.Dialog.Alert`,它会使`Activity`呈现为对话框样式。 ```xml <style name="PopupTheme" parent="Theme.AppCompat.Dialog.Alert...
在Android开发中,实现“背景半透明效果的Activity”是一种常见的需求,它可以为用户界面增添一层优雅而现代的视觉体验。这种效果通常是通过调整Activity的窗口属性和使用自定义主题来实现的。以下将详细解释如何...
要实现Activity的透明效果,我们需要调整Activity的主题(Theme)和窗口(Window)属性。 1. **设置透明主题**: 在AndroidManifest.xml中,为要实现透明效果的Activity指定一个透明主题。可以创建自定义主题,...
在Android应用开发中,Activity是构成应用程序的基本组件,它代表用户界面的一个屏幕。有时,我们需要在子Activity执行某些操作后将结果返回给父Activity。这个过程通常涉及到Intent的使用,Intent不仅用于启动新的...
activity view window viewgroup的关系
例如,如果我们想禁用Activity的标题栏(Title Bar),我们可以使用`Window.FEATURE_NO_TITLE`作为`featureId`: ```java requestWindowFeature(Window.FEATURE_NO_TITLE); ``` `Window.FEATURE_NO_TITLE` 就是1,...
方法一: 通过Theme.Translucent ...只需要在Manifest中需要透明的Activity内设置theme为以上任意一个就可以了 <activity android:name=com.vixtel.simulate.MainApp android:configChanges=keyboardHidden|
其次,我们需要在AndroidManifest.xml文件中修改相应Activity的theme。下面是AndroidManifest.xml文件的内容: ```xml <activity android:name=".HomeActivity" android:label="@string/app_name" android:theme=...
它是一种常见的主题,用于创建看起来像是浮现在当前Activity之上的小窗口,即对话框样式。这种主题使得应用的某一部分可以以非侵入性的方式呈现,不占据整个屏幕,通常用于显示警告、设置或其他简短交互。然而,...