package com.emop.client.widget.item; import android.os.Handler; import android.os.Message; import com.emop.client.widget.Constants; import com.emop.client.widget.WaterFallView; public class FlowViewHandler extends Handler { private WaterFallView fallView; public FlowViewHandler(WaterFallView sv){ this.fallView = sv; } private int GetMinValue(int[] array) { int m = 0; int length = array.length; for (int i = 0; i < length; ++i) { if (array[i] < array[m]) { m = i; } } return m; } @Override public void handleMessage(Message msg) { // super.handleMessage(msg); switch (msg.what) { case Constants.HANDLER_WHAT: FlowView v = (FlowView) msg.obj; //WaterFallView.Debug("add item to view with width->"+msg.arg1); int h = msg.arg2; // Log.d("MainActivity", // String.format( // "获取实际View高度:%d,ID:%d,columnIndex:%d,rowIndex:%d,filename:%s", // v.getHeight(), v.getId(), v // .getColumnIndex(), v.getRowIndex(), // v.getFlowTag().getFileName())); String f = v.getFileName(); // 此处计算列值 int columnIndex = GetMinValue(fallView.column_height); v.setColumnIndex(columnIndex); fallView.column_height[columnIndex] += h; fallView.pins.put(v.getId(), f); fallView.iviews.put(v.getId(), v); fallView.waterfall_items.get(columnIndex).addView(v); fallView.lineIndex[columnIndex]++; fallView.pin_mark[columnIndex].put(fallView.lineIndex[columnIndex], fallView.column_height[columnIndex]); fallView.bottomIndex[columnIndex] = fallView.lineIndex[columnIndex]; break; } } @Override public boolean sendMessageAtTime(Message msg, long uptimeMillis) { return super.sendMessageAtTime(msg, uptimeMillis); } };