Android LinearLayout動的追加サブView
9821 ワード
今日はLinearLayoutのダイナミックレイアウトを整えて、言わないで、コードを貼ります.
1.まずOnCreate()でinit()メソッドを呼び出す.
2.主な処理コード.
ps:createView()を呼び出すのとcreateView 2()を呼び出すのと同じ効果です.
1.まずOnCreate()でinit()メソッドを呼び出す.
2.主な処理コード.
- /**
- * :
- * :2013-4-28 11:47:40 :
- */
- private void initView() {
- layout = (LinearLayout) findViewById(R.id.layout_main);
- layout.setOrientation(LinearLayout.VERTICAL); // Linearlayout
-
- layout.addView(createView(" "));
- layout.addView(createView(" "));
- layout.addView(createView(" "));
- layout.addView(createView(" "));
- }
-
- /**
- * : View
- * :2013-4-28 12:52:37 :
- *
- * @param txt1
- * @param txt2
- * @return
- * ps: View TextView
- */
- private View createView(String txt) {
- LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
- LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
- // View view =LayoutInflater.from(this).inflate(R.layout.view_item, null);// XML
- LinearLayout view = new LinearLayout(this);
- view.setLayoutParams(lp);//
- view.setOrientation(LinearLayout.HORIZONTAL);// View Linearlayout//
-
- // View
- ViewGroup.LayoutParams vlp = new ViewGroup.LayoutParams(
- ViewGroup.LayoutParams.WRAP_CONTENT,
- ViewGroup.LayoutParams.WRAP_CONTENT);
- ViewGroup.LayoutParams vlp2 = new ViewGroup.LayoutParams(
- ViewGroup.LayoutParams.WRAP_CONTENT,
- ViewGroup.LayoutParams.WRAP_CONTENT);
-
- TextView tv1 = new TextView(this);
- TextView tv2 = new TextView(this);
- tv1.setLayoutParams(vlp);// TextView
- tv2.setLayoutParams(vlp2);
- tv1.setText(" : ");
- tv2.setText(txt);
- tv2.setPadding(calculateDpToPx(50), 0, 0, 0);//
- view.addView(tv1);// TextView View
- view.addView(tv2);// TextView View
- return view;
- }
-
- /**
- * : View
- * :2013-4-28 2:09:57 :
- * @param txt
- * @return
- */
- private View createView2(String txt){
- LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
- LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
- View view =LayoutInflater.from(this).inflate(R.layout.view_item, null);// XML
-
- view.setLayoutParams(lp);//
-
- TextView tv1 = (TextView) view.findViewById(R.id.tv_1);
- TextView tv2 = (TextView) view.findViewById(R.id.tv_2);
- tv1.setText(" : ");
- tv2.setText(txt);
-
- return view;
- }
-
- /**
- * : dp px
- * :2013-4-28 2:17:38 :
- * @param tv
- * @return
- */
- private int calculateDpToPx(int padding_in_dp){
- final float scale = getResources().getDisplayMetrics().density;
- return (int) (padding_in_dp * scale + 0.5f);
- }
ps:createView()を呼び出すのとcreateView 2()を呼び出すのと同じ効果です.