这里呢我想实现的功能就是屏幕上方是一个固定的logo标识,下方呢是不同的控件,而且多个屏都要使用同一个logo
为了节省资源使用merge
public View getCommonLayout(LayoutInflater inflater, int contentLayout){
LinearLayout commonLyt = (LinearLayout)inflater.inflate(R.layout.lay_common, null);
inflater.inflate(contentLayout, commonLyt,true);
ImageView logo = (ImageView) commonLyt.findViewById(R.id.Logo);
logo.setBackgroundResource(getLogo());
return commonLyt;
}
R.layout.lay_common
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:gravity="center_horizontal"
android:background="@drawable/smoke40">
<ImageView android:id="@+id/Logo" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_marginTop="20px"
android:layout_marginBottom="10px" />
</LinearLayout>
上面呢就是建立了一个屏幕上方的logo
然后就可以加载其他的了
LayoutInflater inflater = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
setContentView(getCommonLayout(inflater,R.layout.lay_content_main));
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="wrap_content">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:gravity="center_horizontal">
<Spinner android:id="@+id/TypeSpinner" android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button android:id="@+id/SaveButton" android:text="Save"
android:layout_width="wrap_content" android:layout_height="wrap_content" />
<Button android:id="@+id/ViewListButton" android:text="View List"
android:layout_width="wrap_content" android:layout_height="wrap_content" />
<CheckBox android:id="@+id/olvidado" android:text="Se me olvido"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:clickable="true" />
<TimePicker android:id="@+id/CuandoFumadoPicker"
android:visibility="gone" android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button android:id="@+id/DevelopingButton" android:text="Developing"
android:layout_width="wrap_content" android:layout_height="wrap_content" />
</LinearLayout>
</ScrollView>
</merge>
单元测试无法通过,控制台打印如下信息:
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (classFileParser.cpp:3075), pid=400, tid=3228
# Error: ShouldNotReachHere()
#
# JRE version: 6.0_16-b01
# Java VM: Java HotSpot(TM) Client VM (14.2-b01 mixed mode windows-x86 )
# An error report file with more information is saved as:
# D:\android\project\internet\hs_err_pid400.log
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
#
原文链接:http://www.yeeyan.com/articles/view/37503/37323
英文链接:
http://mobiforge.com/developing/blog/useful-x-headers
X头域解析191个读者 biAji @ yeeyan.com 2009年04月15日 双语对照 原文 字体大小 小 中 大
简介
本文对http协议中未曾涉及到,而移动设备网络开发又经常遇到的x头域做了简要的解析
我最近开始以搜集 "X-headers" 头域为乐。X头域是HTTP请求中以X为开头的头域的统称。简单的说,这些头域是一些非标准HTTP协议所包括的或者是专有的。在开发移动门户时,这些头域会起到很有趣的作用。我将我x头域的搜集结果分享一下。
一般来说,只对自己了解的东西发表言论是明智之举。所以我现在的做法让我感觉如履薄冰,但我希望这个帖子能为读者带来些微的益处。
X头域可以在诸多方面得到应用:用户身份认证,设备辨识,网络特性确认等等。无论是从创建良好的移动应用体验还是从满意度来看,这些信息都是很有用的。
我从访问过 我的网站的设备中搜集了以下头域列表。我不能理解全部它们的意义;一些是我猜测的,但它们仍然很有趣。如果我搞错了其中一些,而您又恰好知道,请告诉我。
这些头域是我们耳熟能详的。
头域名称 涵义 x-forwarded-for 客户端连接至服务器的源IP地址 x-forwarded-host 源主机名x-forwarded-server 源服务器名 x-wap-profile 遵循指定标准的用户代理配置 x-wap-profile-diff wap网关或代理可以选择性的覆写用户代理配置。其区别于此指定
其它有意思的头域:
头域名称 涵义 x-apn-id: 接入点识别。Wap、因特网、电子邮件等可以拥有不同的接入点设置。 x-charging-id: 有人知道这是干啥用的么?其值为空 x-drutt-3pi-request-uri Drutt是一个由爱立信提供的业务支持系统。这个头域的作用未知…… x-drutt-3pi-serviceid 未知x-drutt-device-id 以名称识别设备。如:“Nokia_N95__S60_browser_” x-drutt-request-id 未知 x-ebo-ua: 未知 x-ggsnip: 包含网络中GGSN的IP地址 x-h3g-cc 未知 x-h3g-client-ip 设备处于当前网络的IP。session识别 x-h3g-customer-subtype 识别客户定制类型 x-h3g-customer-type 识别客户类型 x-h3g-device-name 设备名称。比如:Nokia-N95-Safari x-h3g-nc 未知,其值为"4". x-h3g-network-quality 网络类型,比如"3G" x-h3g-party-country 标示用户国家 x-h3g-party-id 未知 x-h3g-party-status 未知 x-h3g-party-user-id 未知 x-h3g-roaming-status 标示用户是否处于漫游状态。布尔值 XID: 未知 x-jphone-color 一些softbank相关的东西 x-jphone-display 屏幕尺寸
x-jphone-msname 未知,示例值:821P x-jphone-region: 未知 x-jphone-smaf 未知,示例值: "40/pcm" x-jphone-uid: 我猜是用户id x-lori-time-1: 未知 x-net-info 未知 x-network-info: 包含承载网络(比如GPRS)内部IP地址之类的信息 x-os-prefs: 标示设备能力。示例值: "fw:240; fh:320; cd:24c; pl:3; pj:1; pa:1;pi:1;ps:2;" x-proxy-id: 未知 x-psp-browser PSP浏览器版本 x-psp-productcode 未知,示例值: "CEL" x-roaming: 漫游信息。取值 "Yes" 或 "No" x-sgsnip:
SGSN的IP地址
x-source-id 未知 x-wapipaddr: wap网关的IP地址x-wap-proxy-cookie: cookie? x-wsb-contextid 未知,Vodafone(沃达丰)相关的东西?
由 OpenWave 网关获得的头域。我对这个不太熟,所以我直接查的wirelessFAQ
头域名称 涵义 x-up-calling-line-id: 终端用户手机号码 x-up-devcap-accept-language: 与accept-language头域类似 x-up-devcap-cc: 未知,示例值:1 x-up-devcap-charset: 字符集x-up-devcap-charset: utf 字符集相关
x-up-devcap-immed-alert: 未知 x-up-devcap-iscolor: 布尔值,定义设备是否为彩色屏幕 x-up-devcap-max-pdu: 最大负载值 x-up-devcap-msize: 未知 x-up-devcap-numsoftkeys: 设备软键数目 x-up-devcap-screen-chars: 一行能容纳的字符数? x-up-devcap-screendepth: 色深
x-up-devcap-screenpixels: 以点为单位的屏幕尺寸 x-up-devcap-smartdialing: 不知道智能拨号是干啥的。可能是一键拨号功能吧。 x-up-devcap-softkeysize: 未知 x-up-fax-accepts: 未知 x-up-fax-limit: 未知? x-up-subno: 某种最终用户ID x-up-uplink: 看起来像是wap网关的dns名称 x-up-wappush-secure: 未知 x-up-wappush-unsecure: 未知 x-up-wtls-info: 未知
诺基亚wap网关头域:
头域名称 涵义 x-nokia-alias 最终用户手机号,加密 x-nokia-bearer: GPRS之类的 x-nokia-connection_mode 一般是TCPIP x-nokia-gateway-id: wap网关标识。看起来跟Via头域差不多的用法 x-nokia-imsi: Imsi值 x-nokia-ipaddress: 内部IP地址x-nokia-localsocket: 内部IP地址和端口号
x-nokia-msisdn: 用户手机号,普通文本 x-nokia-musicshop-bearer Nokia音乐商店。典型值 "GPRS/3G" x-nokia-musicshop-version: Nokia音乐商店版本号 x-nokia-prepaidind: 与定制相关的东西。取值 "4"
代码转换头域
头域名称 涵义 x-novarra-device-type: Novarra头域,作用未知,取值为"0" x-operamini-features: Opera Mini代理加上的头域。取值为 "advanced, download, camera, folding, inputhints" x-operamini-phone: Opera Mini代理提供的手机名 x-operamini-phone-ua: 使用Opera Mini浏览器的设备原始用户代理名称 x-original-user-agent: 由Googles转换的发至服务器的原设备用户代理名称 x-surfopen-msisdn: 一些SurfOpen的东西。取值标示着此对话为人为创建 x-moz: 未知,但看起来像是代理的行为。取值为"prefetch". x-bluecoat-via 不明白这是什么。但可能跟bluecoat. 有关。是它的转换代码? x-mobile-gateway: 标识网关/代理。比如:"Novarra-Vision/6.9 (TELIASONERA; Server-Only)" x-mobile-ua: Mowser 转换的原始用户代理 x-device-accept:经过转码的设备原始accept头域。比如; Novarra. 这是w3c鼓励的行为方式
x-device-accept-charset: 如前 x-device-user-agent: 如前可以用来识别最终用户的头域
头域名称 涵义 x-drutt-client-ip 手机当前的IP地址。取值为内部10.开头的内部IP x-drutt-portal-user-id drutt系统中用户唯一识别码 x-drutt-portal-user-msisdn 手机号码 x-h3g-msisdn 手机号码 x-imsi: imsi号码。辨识最终用户 x-msisdn最终用户手机号码
x-nas-ip: 未知,但取值为一内网IP x-wap-clientid: 看起来好似唯一用户识别码 x-wap-personalization: 无线网内设备IP x-wsb-identity 最终用户手机号 x-wte-msisdn: 说是手机号码,但看起来不像 x-nokia-imsi: Imsi值 x-nokia-alias 用户手机号,密文 x-nokia-msisdn: 普通文本形式的用户手机号 x-up-calling-line-id: 最终用户识别码AvantGo 头域
x-avantgo-userid 最终用户为一识别码 x-avantgo-version AvangGo版本