package cn.androidy.thinking.views; import android.content.Context; import android.util.AttributeSet; import android.view.View; import android.widget.ImageView; import android.widget.RelativeLayout; import java.util.ArrayList; import java.util.List; import cn.androidy.listgrid.control.TickTimer; import cn.androidy.listgrid.views.FixedHeightWidthRatiolayout; import cn.androidy.thinking.R; public class MetroConfigLayout extends FixedHeightWidthRatiolayout implements View.OnClickListener { public static final float METRO_1_HW_RATIO = 1.0f * 200 / 720;// 1格运营位图片 public static final float METRO_3_HW_RATIO = 1.0f * 400 / 720;// 3格运营位图片 public static final float METRO_4_HW_RATIO = 1.0f * 400 / 720;// 4格运营位图片 public static final float METRO_6_HW_RATIO = 1.0f * 600 / 720;// 6格运营位图片 private ImageView[] imageViewArray; private List<TimerView> timerViewsList = new ArrayList<TimerView>(); public MetroConfigLayout(Context context, AttributeSet attrs) { super(context, attrs); } private long endTime = 0; private TickTimer tickTimer; public MetroConfigLayout(Context context, float heightWidthRatio, int widthInPx) { this(context, heightWidthRatio, widthInPx, new TickTimer()); } public MetroConfigLayout(Context context, float heightWidthRatio, int widthInPx, TickTimer tickTimer) { super(context, heightWidthRatio, widthInPx); this.tickTimer = tickTimer; endTime = 18 * TickTimer.HOUR_MILLIS + 9 * TickTimer.MIN_MILLIS + 44 * TickTimer.SEC_MILLIS + System.currentTimeMillis(); } public void bindData(int layerNum) { if (imageViewArray != null && imageViewArray.length != 0) { return; } if (layerNum == 1) { imageViewArray = new ImageView[1]; imageViewArray[0] = new ImageView(getContext()); addView(imageViewArray[0], 0, 0, 1.0f, 1.0f); if (endTime > 0) { TimerView timerView = new TimerView(getContext()); timerView.setEndTime(endTime); timerViewsList.add(timerView); LayoutParams p = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); p.setMargins((int) (13 * dm.density), (int) (15 * dm.density), 0, 0); addView(timerView, p); } } else if (layerNum == 3) { imageViewArray = new ImageView[3]; imageViewArray[0] = new ImageView(getContext()); addView(imageViewArray[0], 0, 0, 0.5f, 1.0f); imageViewArray[1] = new ImageView(getContext()); addView(imageViewArray[1], 0.5f, 0, 0.5f, 0.5f); imageViewArray[2] = new ImageView(getContext()); addView(imageViewArray[2], 0.5f, 0.5f, 0.5f, 0.5f); for (int i = 0; i < imageViewArray.length; i++) { imageViewArray[i].setId(0x3f000001 + i); } if (endTime > 0) { TimerView timerView = new TimerView(getContext()); timerView.hideStartText(); LayoutParams p = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); p.setMargins((int) (9 * dm.density), (int) (23 * dm.density), 0, 0); timerView.setEndTime(endTime); timerViewsList.add(timerView); addView(timerView, p); } if (endTime > 0) { TimerView timerView = new TimerView(getContext()); timerView.hideStartText(); LayoutParams p = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); timerView.setEndTime(endTime); p.addRule(RelativeLayout.ALIGN_LEFT, imageViewArray[1].getId()); p.setMargins((int) (9 * dm.density), (int) (23 * dm.density), 0, 0); timerViewsList.add(timerView); addView(timerView, p); } if (endTime > 0) { TimerView timerView = new TimerView(getContext()); timerView.hideStartText(); LayoutParams p = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); timerView.setEndTime(endTime); p.addRule(RelativeLayout.ALIGN_LEFT, imageViewArray[1].getId()); p.addRule(RelativeLayout.BELOW, imageViewArray[1].getId()); p.setMargins((int) (9 * dm.density), (int) (23 * dm.density), 0, 0); timerViewsList.add(timerView); addView(timerView, p); } addHorizontalLine(R.color.dividor, 0.5f, 0.5f, 2, 0.5f); addVerticalLine(R.color.dividor, 0.5f, 0, 2, 1.0f); } else if (layerNum == 4) { imageViewArray = new ImageView[4]; imageViewArray[0] = new ImageView(getContext()); addView(imageViewArray[0], 0, 0, 0.5f, 1.0f); imageViewArray[1] = new ImageView(getContext()); addView(imageViewArray[1], 0.5f, 0, 0.5f, 0.5f); imageViewArray[2] = new ImageView(getContext()); addView(imageViewArray[2], 0.5f, 0.5f, 0.25f, 0.5f); imageViewArray[3] = new ImageView(getContext()); addView(imageViewArray[3], 0.75f, 0.5f, 0.25f, 0.5f); for (int i = 0; i < imageViewArray.length; i++) { imageViewArray[i].setId(0x3f000001 + i); } if (endTime > 0) { TimerView timerView = new TimerView(getContext()); timerView.hideStartText(); LayoutParams p = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); p.setMargins((int) (9 * dm.density), (int) (23 * dm.density), 0, 0); p.addRule(RelativeLayout.RIGHT_OF, imageViewArray[0].getId()); timerView.setEndTime(endTime); timerViewsList.add(timerView); addView(timerView, p); } addHorizontalLine(R.color.dividor, 0.5f, 0.5f, 2, 0.5f); addVerticalLine(R.color.dividor, 0.5f, 0, 2, 1.0f); addVerticalLine(R.color.dividor, 0.75f, 0.5f, 2, 0.5f); } else if (layerNum == 6) { imageViewArray = new ImageView[6]; imageViewArray[0] = new ImageView(getContext()); addView(imageViewArray[0], 0, 0, 1f, 1.0f / 3); imageViewArray[1] = new ImageView(getContext()); addView(imageViewArray[1], 0, 1.0f / 3, 0.5f, 2.0f / 3); imageViewArray[2] = new ImageView(getContext()); addView(imageViewArray[2], 0.5f, 1.0f / 3, 0.25f, 1.0f / 3); imageViewArray[3] = new ImageView(getContext()); addView(imageViewArray[3], 0.75f, 1.0f / 3, 0.25f, 1.0f / 3); imageViewArray[4] = new ImageView(getContext()); addView(imageViewArray[4], 0.50f, 2.0f / 3, 0.25f, 1.0f / 3); imageViewArray[5] = new ImageView(getContext()); addView(imageViewArray[5], 0.75f, 2.0f / 3, 0.25f, 1.0f / 3); for (int i = 0; i < imageViewArray.length; i++) { imageViewArray[i].setId(0x3f000001 + i); } if (endTime > 0) { LayoutParams p = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); TimerView timerView = new TimerView(getContext()); timerView.setEndTime(endTime); timerViewsList.add(timerView); p.setMargins((int) (13 * dm.density), (int) (15 * dm.density), 0, 0); addView(timerView, p); } addHorizontalLine(R.color.dividor, 0, 1.0f / 3, 2, 1); addVerticalLine(R.color.dividor, 0.5f, 1.0f / 3, 2, 2.0f / 3); addVerticalLine(R.color.dividor, 0.75f, 1.0f / 3, 2, 2.0f / 3); addHorizontalLine(R.color.dividor, 0.5f, 2.0f / 3, 2, 0.5f); } if (tickTimer != null) { for (TimerView timerView : timerViewsList) { tickTimer.addListener(timerView); } } } public List<TimerView> getTimerViewsList() { return timerViewsList; } @Override public void onClick(View v) { } }