我能以某种方式检测我的应用程序是否在HTC Sense上运行吗?
更普遍的问题是,我有一个自定义可绘制的Button。这与Gmail应用右上角的账号切换非常相似。按下或聚焦时,按钮将以橙色高亮显示。但这在HTC Sense上看起来并不好--因为那里的标准高亮颜色是绿色。
发布于 2010-09-09 21:34:32
让我们看一下android.os.Build字符串,我不确定HTC人员用什么组合来表示HTC sense设备。
发布于 2011-06-28 17:56:21
这里有一个link建议了一种检测设备上HTC感知的方法,大约是讨论的三分之一。我在Desire和Desire Z上测试过。
代码如下(来自用户: David):
private static final String SENSE_UI_LAUNCHER_NAME =
"com.htc.launcher.Launcher";
private static Boolean senseUI;
public static final boolean isSenseUI(Context context) {
if (senseUI == null) {
senseUI = false;
PackageManager packageManager = context.getPackageManager();
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
List<ResolveInfo> list = packageManager.queryIntentActivities(
intent, PackageManager.MATCH_DEFAULT_ONLY);
for (ResolveInfo info : list) {
if (info.activityInfo != null
&& SENSE_UI_LAUNCHER_NAME
.equals(info.activityInfo.name)) {
senseUI = true;
break;
}
}
}
return senseUI;
}发布于 2010-09-12 04:04:18
我认为Android为你提供了一种比检查Sense更好的方法来解决这个问题,它将适用于所有设备制造商。HTC并不是唯一一家改变了选择器颜色的公司。我认为索尼爱立信有透明的白色/蓝色,摩托罗拉在他们的MotoBlur用户界面中将其改为红色,加明-华硕在他们的UI中将其改为蓝色,仅举几例。
您应该做的是覆盖图像按钮上的android:background属性,并使用您自己的可绘制,而不是依赖于框架的背景可绘制。如果您还不熟悉它们,那么在创建自定义背景时,您可能还想看看Selectors,这样您仍然可以获得按下/选中/未选中的颜色提示。
如果要在多个按钮上执行此操作,则可能需要使用样式和主题来帮助完成此操作。你需要从Android文档中引用的两个主要位置是"Applying Styles and Themes“和"Style Resources”。
希望这能有所帮助!
https://stackoverflow.com/questions/3676959
复制相似问题