如何更改设置中添加账户的图标和图标大小
时间:10-02
整理:3721RD
点击:
[DESCRIPTION]
在设置的添加账户中,添加成功一个账户比如邮件,会在"添加账户"这个选项下显示这个账户。
1:以微信为例,如何修改这个帐号的图标。
2:如下图,添加前和添加完成后,图标会变小。

添加账户时图标较大

添加完成后图标较小
[SOLUTION]
1:帐号的图标是在Setting的ChooseAccountActivity.java和AuthenticatorHelper.java的
getDrawableForType函数根据packageName 得到的,所以这个例子中icon来自于微信这个APK。
不过可以在这里修改下,如果是微信这个包,就强制换成自己的图标,这样就能修改图标了。
2:添加成功界面的Item是header,对应的ayout在preference_header_item.xml中,本来也是wrap_content的,
但是由于其对应的HeaderAdapter的getView函数重新设置了其Layout导致icon缩小.
调整layout的代码在
Settings.Java (alps\packages\apps\settings\src\com\android\settings)
中 getView函数内的
//$FALL-THROUGH$
case HEADER_TYPE_NORMAL: //在这条case有重新调整layout
if (header.extras != null
&& header.extras.containsKey(ManageAccountsSettings.KEY_ACCOUNT_TYPE)) {
String accType = header.extras.getString(
ManageAccountsSettings.KEY_ACCOUNT_TYPE);
ViewGroup.LayoutParams lp = holder.icon.getLayoutParams();
lp.width = getContext().getResources().getDimensionPixelSize(
R.dimen.header_icon_width);
lp.height = lp.width; //这里将icon的height高度设置成了 lp.width ,而lp.width又是
R.dimen.header_icon_width的值.
holder.icon.setLayoutParams(lp);
Drawable icon = mAuthHelper.getDrawableForType(getContext(), accType);
holder.icon.setImageDrawable(icon);
} else {
holder.icon.setImageResource(header.iconRes);
}
holder.title.setText(header.getTitle(getContext().getResources()));
CharSequence summary = header.getSummary(getContext().getResources());
if (!TextUtils.isEmpty(summary)) {
holder.summary.setVisibility(View.VISIBLE);
holder.summary.setText(summary);
} else {
holder.summary.setVisibility(View.GONE);
}
break;
看我上面对code的说明就知道,调整dimens.xml中 R.dimen.header_icon_width的值就可以调整icon的宽度和高度
了. 或者将这里调整layout的code注释掉,则添加前和添加后的size就一样了.
在设置的添加账户中,添加成功一个账户比如邮件,会在"添加账户"这个选项下显示这个账户。
1:以微信为例,如何修改这个帐号的图标。
2:如下图,添加前和添加完成后,图标会变小。

添加账户时图标较大

添加完成后图标较小
[SOLUTION]
1:帐号的图标是在Setting的ChooseAccountActivity.java和AuthenticatorHelper.java的
getDrawableForType函数根据packageName 得到的,所以这个例子中icon来自于微信这个APK。
不过可以在这里修改下,如果是微信这个包,就强制换成自己的图标,这样就能修改图标了。
2:添加成功界面的Item是header,对应的ayout在preference_header_item.xml中,本来也是wrap_content的,
但是由于其对应的HeaderAdapter的getView函数重新设置了其Layout导致icon缩小.
调整layout的代码在
Settings.Java (alps\packages\apps\settings\src\com\android\settings)
中 getView函数内的
//$FALL-THROUGH$
case HEADER_TYPE_NORMAL: //在这条case有重新调整layout
if (header.extras != null
&& header.extras.containsKey(ManageAccountsSettings.KEY_ACCOUNT_TYPE)) {
String accType = header.extras.getString(
ManageAccountsSettings.KEY_ACCOUNT_TYPE);
ViewGroup.LayoutParams lp = holder.icon.getLayoutParams();
lp.width = getContext().getResources().getDimensionPixelSize(
R.dimen.header_icon_width);
lp.height = lp.width; //这里将icon的height高度设置成了 lp.width ,而lp.width又是
R.dimen.header_icon_width的值.
holder.icon.setLayoutParams(lp);
Drawable icon = mAuthHelper.getDrawableForType(getContext(), accType);
holder.icon.setImageDrawable(icon);
} else {
holder.icon.setImageResource(header.iconRes);
}
holder.title.setText(header.getTitle(getContext().getResources()));
CharSequence summary = header.getSummary(getContext().getResources());
if (!TextUtils.isEmpty(summary)) {
holder.summary.setVisibility(View.VISIBLE);
holder.summary.setText(summary);
} else {
holder.summary.setVisibility(View.GONE);
}
break;
看我上面对code的说明就知道,调整dimens.xml中 R.dimen.header_icon_width的值就可以调整icon的宽度和高度
了. 或者将这里调整layout的code注释掉,则添加前和添加后的size就一样了.
签到专用组
签到专用组
