package com.applite.flowlayoutdemo;
import com.applite.view.FlowLayout;
import android.app.Activity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.ViewGroup.LayoutParams;
import android.view.ViewGroup.MarginLayoutParams;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
public class MainActivity extends Activity {
/*
1.流式布局特点,应用场景
2.自定义ViewGroup
1.onMeasure:测量子view的宽和高,设置自己的宽和高
根据子view的布局文件,为子view设置测量模式和测量值;
测量=测量模式+测量值;
测量模式:
EXACTLY:100dp,match_parent
AT_MOST:wrap_content
UNSPCIFIED:子空间想要多大就多大,很少见
2.onLayout:设置子view的位置
ViewGroup对应一个LayoutParams 类型由父决定
子View.getLayoutParams =>
* */
private String[] labeStrings=new String[]{
"小清新","素颜","烟熏","浓妆","淡抹","丝袜","重口味"
};
private FlowLayout mFlowLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mFlowLayout=(FlowLayout)findViewById(R.id.id_flowlayout);
initData();
}
public void initData(){
/*
for (int i = 0; i < labeStrings.length; i++) {
Button btn=new Button(this);
MarginLayoutParams lp=new MarginLayoutParams(
MarginLayoutParams.WRAP_CONTENT,
MarginLayoutParams.WRAP_CONTENT);
//btn.setLayoutParams(lp);
btn.setText(labeStrings[i]);
mFlowLayout.addView(btn,lp);
}
*/
LayoutInflater inflater=LayoutInflater.from(this);
for (int i = 0; i < labeStrings.length; i++) {
ImageView tv=(ImageView)inflater.inflate(R.layout.tv, mFlowLayout,false);
//tv.setText(labeStrings[i]);
mFlowLayout.addView(tv);
}
}
}