package com.video.ui.view;
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.widget.FrameLayout;
import com.video.ui.R;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class LinearFrame extends FrameLayout {
Context mContext;
int[] rowOffset = new int[2];
static int DIVIDE_SIZE = 6;
List<WeakReference<View>> mViewList = new ArrayList<WeakReference<View>>();
private static int ITEM_V_WIDTH = -1;
public LinearFrame(Context context) {
super(context);
mContext = context;
init();
}
public LinearFrame(Context context, AttributeSet attrs) {
super(context, attrs);
mContext = context;
init();
}
private void init(){
if(ITEM_V_WIDTH == -1){
DIVIDE_SIZE = getResources().getDimensionPixelSize(R.dimen.ITEM_DIVIDE_SIZE);
}
setClipChildren(false);
setClipToPadding(false);
}
public View getItemView(int index){
if(index>=mViewList.size()) return null;
return mViewList.get(index).get();
}
public void clearItems(){
removeAllViews();
rowOffset[1]=rowOffset[0]=0;
mViewList.clear();
}
public View addItemView(View child, int width, int height, int leftPadding, int midPadding){
child.setFocusable(true);
mViewList.add(new WeakReference<View>(child));
View result = child;
LayoutParams flp = new LayoutParams(width, height);
flp.leftMargin = rowOffset[0] + leftPadding;
flp.topMargin = getPaddingTop();
addView(child,flp);
rowOffset[0]+=width + midPadding;
return result;
}
public View addItemView(View child, int width, int height, int padding){
return addItemView(child, width, height, padding, padding);
}
public View addItemViewPort(View child, int width, int height, int padding){
child.setFocusable(true);
mViewList.add(new WeakReference<View>(child));
View result = child;
LayoutParams flp = new LayoutParams(width, height);
flp.leftMargin = getPaddingLeft();
flp.topMargin = getPaddingTop() + rowOffset[0] + padding;
flp.rightMargin = getPaddingRight();
addView(child,flp);
rowOffset[0]+=height + padding;
return result;
}
public View addItemViewPort(View child, int width, int height, int horizontal_padding, int vertical_padding){
child.setFocusable(true);
mViewList.add(new WeakReference<View>(child));
View result = child;
LayoutParams flp = new LayoutParams(width, height);
flp.leftMargin = getPaddingLeft() + horizontal_padding;
flp.topMargin = getPaddingTop() + rowOffset[0] + vertical_padding;
flp.rightMargin = getPaddingRight();
addView(child,flp);
rowOffset[0]+=height + vertical_padding;
return result;
}
}