Android设置title中的Icon有几种方法,介绍如下:

一种是直接在AndroidManifest.xml文件中设置android:icon属性,这种方法简单有效,应该算是我们最常用的设置Icon的方法:

<activity android:name=".activities.ImportExportSimCardActivity"             android:label="@string/exportsimcardtitle"            android:icon="@drawable/ic_activity_export_sim"             android:theme="@style/ImportExportSimCardActivityTheme" >         </activity>

但有些时候我们希望在代码中可以动态更改Icon,或者说有可能两个Activity其实共用一份代码,需要看情况设置icon,如下面的情况:

于是另一种方法,在代码中改变。可以使用 requestWindowFeature(Window.FEATURE_LEFT_ICON)setFeatureDrawableResource()函数。

package com.android.importexport;  import android.app.Activity; 
import android.os.Bundle;  import android.view.Window;  public class Test01 extends Activity {      /** Called when the activity is first created. */      @Override      public void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState); 
                  requestWindowFeature(Window.FEATURE_LEFT_ICON);          // requestWindowFeature()必须在setContentView()之前,否则会报错;         // requestWindowFeature()操控的对象还有:         // 1.DEFAULT_FEATURES:系统默认状态,一般不需要指定         // 2.FEATURE_CONTEXT_MENU:启用ContextMenu,默认该项已启用,一般无需指定         // 3.FEATURE_CUSTOM_TITLE:自定义标题。当需要自定义标题时必须指定。如:标题是一个按钮时         // 4.FEATURE_INDETERMINATE_PROGRESS:不确定的进度         // 5.FEATURE_LEFT_ICON:标题栏左侧的图标         // 6.FEATURE_NO_TITLE:无标题         // 7.FEATURE_OPTIONS_PANEL:启用“选项面板”功能,默认已启用。         // 8.FEATURE_PROGRESS:进度指示器功能         // 9.FEATURE_RIGHT_ICON:标题栏右侧的图标                   setContentView(R.layout.main);           setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, R.drawable.ic_activity_export_sim);      }  }

以上代码可以解决icon改变的问题,但是在Android3.0 HoneyComb中ActionBar会无法获取(getActionBar返回null),而且需要重新自定义title的格式了。无法使用HoneyComb自定义的风格,这个很鸡肋。

于是可以考虑第三种方法,使用activity-alias,它可以快速指向到一个Activity,但同时又能各自定义不同的icon,实现如下:

<!-- <Kenny.z>> Activity for Export Contacts to SimCard -->         <activity android:name=".activities.ImportExportSimCardActivity"             android:label="@string/exportsimcardtitle"             android:icon="@drawable/ic_activity_export_sim"             android:theme="@style/ImportExportSimCardActivityTheme" >         </activity>         <activity-alias android:name="ExportSimCardActivity"          android:targetActivity=".activities.ImportExportSimCardActivity"             android:label="@string/exportsimcardtitle"             android:icon="@drawable/ic_activity_export_sim"             android:theme="@style/ImportExportSimCardActivityTheme">             <intent-filter>                 <action android:name="com.android.contacts.action.EXPORT_TO_SIM" />                 <category android:name="android.intent.category.DEFAULT" />             </intent-filter>         </activity-alias>         <activity-alias android:name="ImportSimCardActivity"          android:targetActivity=".activities.ImportExportSimCardActivity"             android:label="@string/exportsimcardtitle"             android:icon="@drawable/ic_activity_import_sim"             android:theme="@style/ImportExportSimCardActivityTheme">             <intent-filter>                 <action android:name="com.android.contacts.action.IMPORT_FROM_SIM" />                 <category android:name="android.intent.category.DEFAULT" />             </intent-filter>         </activity-alias>

Android中改变Activity的不同icon:activity-alias的更多相关文章

  1. 详解Android中的四大组件之一:Activity详解

    activity的生命周期 activity的四种状态 running:正在运行,处于活动状态,用户可以点击屏幕,是将activity处于栈顶的状态. paused:暂停,处于失去焦点的时候,处于pa ...

  2. Android中如何解决输入法键盘和activity页面遮挡的问题

    不希望遮挡设置activity属性android:windowSoftInputMode="adjustPan" 希望动态调整高度android:windowSoftInputMo ...

  3. Android中如何解决editText一进入activity就自动获取焦点的bug

    有时候我们在进入activity 的时候,EditText会自动聚焦 有人说搞个宽高 都为0dp的EditText 但是我们搞代码的肯定要从实际层面解决,这样更能说服人 所以只需要在EditText的 ...

  4. Android中改变dialog的显示的位置和大小

    private void setDialogSize(Dialog dg) { Window dialogWindow = dg.getWindow(); WindowManager.LayoutPa ...

  5. Android中Activity启动模式详解

    在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作.在Android中Activity的启动模式决定了Activity的启动运行方式. An ...

  6. Android中Style和Theme的使用

    Style: Style是View中一些属性的集合,包括height,padding,font color,background等等,Style单独定义在xml文件中,类似与web页面中css的角色, ...

  7. android中使用jni对字符串加解密实现分析

    android中使用jni对字符串加解密实现分析 近期项目有个需求.就是要对用户的敏感信息进行加密处理,比方用户的账户password,手机号等私密信息.在java中,就对字符串的加解密我们能够使用A ...

  8. Android中软键盘弹出时底部菜单上移问题

    当在Android的layout设计里面如果输入框过多,则在输入弹出软键盘的时候,下面的输入框会有一部分被软件盘挡住,从而不能获取焦点输入. 解决办法: 方法一:在你的activity中的oncrea ...

  9. Android中软键盘弹出时关于布局的问题

     当在Android的layout设计里面如果输入框过多,则在输入弹出软键盘的时候,下面的输入框会有一部分被软件盘挡住,从而不能获取焦点输入. 解决办法: 方法一:在你的activity中的oncre ...

随机推荐

  1. 20145218PC平台逆向破解

    20145218PC平台逆向破解 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串. 该程序同 ...

  2. C# -- 泛型(3)

    简介: 前两篇文章讲了关于泛型的一些基础,下面笔者通过这篇文章来给刚刚接触泛型的朋友介绍一下 <1>.原理性的东西----” 泛型的协变和逆变 “ <2>.以及常用的接口--- ...

  3. Sqlserver风格规范

    常见的字段类型选择 1.字符类型建议采用varchar/nvarchar数据类型 2.金额货币建议采用money数据类型 3.科学计数建议采用numeric数据类型 4.自增长标识建议采用bigint ...

  4. ecliplse集成反编译插件

    言语不清晰,上图最直接 搜索框输入:Decompiler 等待安装: 重启之后进入下面的界面: 8.对反编译器( Decompiler )进行配置 二.配置说明 1.缺省类反编译器(Default C ...

  5. Response Assertion(响应断言)

    响应断言可以让你添加匹配字符串来匹配请求和响应的各个字符串. 匹配字符串可以是1.Contains和Matches正则表达式:2.Equals和SubString文本类型,大小写敏感. Apply t ...

  6. day7学python 初识简单模板

    初识简单模板 模块与包 1.模块:用来从逻辑上组织python代码(变量,函数,类,逻辑:实现功能),本质是.py结尾的文件 但导入的模块名,无.py 2.包:从逻辑上组织模块,本质就是目录(含有_i ...

  7. 处理json

    一.json json是一个字符串,只不过长得比较像字典.使用json函数需要导入json库,即import json json的格式只有双引号,不可用单引号 1.json.loads()和json. ...

  8. 【ARC074F】Lotus Leaves 最小割

    Description 给你一个n*m网格图,有起点荷叶和终点荷叶,有中转荷叶,其他的格子没东西,一个荷叶可以跳到同一行或者列的另一个荷叶.问最多删掉几个中转荷叶能让起点终点不连通.如果不行输出-1. ...

  9. DOS远程桌面连接命令[佚名]

    DOS远程桌面连接命令 mstsc /v: 192.168.1.250 /console cmd 运行 command 删除文件 rd 文件名/S 创建文件 MD 文件名 net user admin ...

  10. SpringBoot设置默认启动页的2种方式

    方式一: 继承WebMvcConfigurerAdapter,重写addViewControllers. @Configurationpublic class WebConfigurer extend ...