【android5.x加入sim1,sim2标识】亦余心之所善兮,虽九死其犹未悔。这篇文章主要讲述android5.x加入sim1,sim2标识相关的知识,希望能为你提供帮助。
1,mobile_signal_group.xml
.....
<
FrameLayout
android:id="
@+
id/mobile_combo"
android:layout_width="
wrap_content"
android:layout_height="
wrap_content"
>
<
ImageView
android:id="
@+
id/mobile_signal"
android:layout_height="
wrap_content"
android:layout_width="
wrap_content"
/>
<
ImageView
android:id="
@+
id/mobile_type"
android:layout_height="
wrap_content"
android:layout_width="
wrap_content"
/>
<
!-- http://blog.csdn.net/sergeycao :mobile_slot_indicateor"
. }@ -->
<
ImageView
android:id="
@+
id/mobile_slot_indicator"
android:layout_height="
wrap_content"
android:layout_width="
wrap_content"
/>
<
/FrameLayout>
2,SignalClusterView.java
//http://blog.csdn.net/sergeycao
int mIndicatorSlot=0;
//http://blog.csdn.net/sergeycao end
private ArrayList<
PhoneState>
mPhoneStates = new ArrayList<
PhoneState>
();
//http://blog.csdn.net/sergeycao
int[] slots_indicators=new int[]{R.drawable.sim1_indicator,R.drawable.sim2_indicator};
// 图片sim1_indicator。sim2_indicator是你制作的sim1,sim2标识
//http://blog.csdn.net/sergeycao end
@Override
public void setSubs(List<
SubscriptionInfo>
subs) {
Xlog.d(TAG, "
setSubs(), subs= "
+
subs);
// Clear out all old subIds.
mPhoneStates.clear();
if (mMobileSignalGroup != null) {
mMobileSignalGroup.removeAllViews();
}
final int n = subs.size();
for (int i = 0;
i <
n;
i+
+
) {
//http://blog.csdn.net/sergeycao
mIndicatorSlot=subs.get(i).getSimSlotIndex();
//http://blog.csdn.net/sergeycao end
inflatePhoneState(subs.get(i).getSubscriptionId());
}
private PhoneState inflatePhoneState(int subId) {
PhoneState state = new PhoneState(subId, mContext);
//http://blog.csdn.net/sergeycao
state.mSlotIndicator=mIndicatorSlot;
//http://blog.csdn.net/sergeycao end
if (mMobileSignalGroup != null) {
mMobileSignalGroup.http://blog.csdn.net/sergeycaoView(state.mMobileGroup);
}
mPhoneStates.http://blog.csdn.net/sergeycao(state);
return state;
}
private class PhoneState {
private final int mSubId;
private boolean mMobileVisible = false;
private int mMobileStrengthId = 0, mMobileTypeId = 0;
private boolean mIsMobileTypeIconWide;
private String mMobileDescription, mMobileTypeDescription;
private ViewGroup mMobileGroup;
//http://blog.csdn.net/sergeycao
private ImageView mMobile, mMobileType,mMobileSlotIndicator;
// http://blog.csdn.net/sergeycao mMobileSlotIndicator
//http://blog.csdn.net/sergeycao
private int mSlotIndicator;
public void setViews(ViewGroup root) {
mMobileGroup = root;
mMobile = (ImageView) root.findViewById(R.id.mobile_signal);
mMobileType = (ImageView) root.findViewById(R.id.mobile_type);
/// M: Support "
Service Network Type on Statusbar"
.
mSignalNetworkType = (ImageView) root.findViewById(R.id.network_type);
// http://blog.csdn.net/sergeycao
mMobileSlotIndicator= (ImageView) root.findViewById(R.id.mobile_slot_indicator);
//http://blog.csdn.net/sergeycao end
}
public boolean apply(boolean isSecondaryIcon) {
Xlog.d(TAG, "
apply("
+
mSubId +
"
),"
+
"
mMobileVisible= "
+
mMobileVisible +
"
, mIsAirplaneMode= "
+
mIsAirplaneMode);
if (mMobileVisible &
&
!mIsAirplaneMode) {
mMobile.setImageResource(mMobileStrengthId);
mMobileType.setImageResource(mMobileTypeId);
mMobileGroup.setContentDescription(mMobileTypeDescription
+
"
"
+
mMobileDescription);
mMobileGroup.setVisibility(View.VISIBLE);
//http://blog.csdn.net/sergeycao
mMobileSlotIndicator.setImageResource(slots_indicators[mSlotIndicator]);
//http://blog.csdn.net/sergeycao end
} else {
mMobileGroup.setVisibility(View.GONE);
}
推荐阅读
- developer.android.google.cn
- Windows和Mac的12个最佳免费iOS模拟器合集
- Windows的10个最佳Xbox 360模拟器合集
- 6款适合初学者的最佳音乐制作软件(免费)
- 10款最适合建筑师的免费建筑软件合集
- Windows的10款最佳虚拟机软件合集
- Windows的10款最佳Xbox模拟器(哪个最好用())
- Windows的8个最佳Xbox One模拟器合集
- 6个最安全的APK下载网站(你最喜欢哪一个())