android 動態添加布局並且實例控件

 android動態加載佈局:

一、很多時候我們加載佈局都是直接通過set:

       setContentView(R.layout.unityvideo2);

方式來加載佈局。

 二、我們還可以通過動態方式加載佈局

//提供一個(佈局)這個佈局是一個xml,控件在xml中
View llHomeMember = inflater.inflate(R.layout.unityvideo2, null);

tv_home_member_view = (TextView) llHomeMember.findViewById(R.id.tv_home_member_view);
//把數據set進控件,
//加載到容器中
ll_home_member.addView(llHomeMember);
三、android動態加載佈局,那麼再來一個android,動態佈局:
 FrameLayout fl = new FrameLayout(MainActivity.this);
        setContentView(fl);
        RelativeLayout.LayoutParams rl_params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);


        customVideoView = new CustomVideoView(MainActivity.this);
        RelativeLayout.LayoutParams customVideoView_params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);


        LinearLayout layout_skip = new LinearLayout(MainActivity.this);
        RelativeLayout.LayoutParams layout_skip_params1 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
        layout_skip_params1.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);


        TextView time_txt = new TextView(MainActivity.this);
        time_txt.setText("關閉");
        RelativeLayout.LayoutParams time_txt_params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);

        time_txt_params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
        layout_skip.addView(time_txt, time_txt_params);


        LinearLayout mid_layout = new LinearLayout(MainActivity.this);
        LinearLayout.LayoutParams mid_layout_params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);

        mid_layout.setOrientation(LinearLayout.HORIZONTAL);
        mid_layout.setGravity(Gravity.BOTTOM);


        RelativeLayout re = new RelativeLayout(MainActivity.this);
        RelativeLayout.LayoutParams re_params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);


        ImageView ico_img = new ImageView(MainActivity.this);
        RelativeLayout.LayoutParams ico_img_params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
        ico_img.setScaleType(ImageView.ScaleType.FIT_XY);
        ico_img.setId(2);


        LinearLayout mid_Ad_layout = new LinearLayout(MainActivity.this);
        RelativeLayout.LayoutParams mid_Ad_layout_params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);


        TextView mid_title_txt = new TextView(MainActivity.this);
        time_txt.setText("廣告title");
        RelativeLayout.LayoutParams mid_title_txt_params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
        mid_title_txt_params.addRule(RelativeLayout.CENTER_IN_PARENT);


        TextView mid_title_content_txt = new TextView(MainActivity.this);
        time_txt.setText("廣告測試內容");
        RelativeLayout.LayoutParams mid_title_content_txt_params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);

        mid_Ad_layout.addView(mid_title_txt, mid_title_txt_params);
        mid_Ad_layout.addView(mid_title_content_txt, mid_title_content_txt_params);


        Button mid_click_btn = new Button(MainActivity.this);
        mid_click_btn.setText("查看詳情 ");
        RelativeLayout.LayoutParams mid_click_btn_params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);


        re.addView(ico_img, ico_img_params);
        re.addView(mid_Ad_layout, mid_Ad_layout_params);
        re.addView(mid_click_btn, mid_click_btn_params);

        mid_layout.addView(re, re_params);


        fl.addView(customVideoView, customVideoView_params);
        fl.addView(layout_skip, layout_skip_params1);
        fl.addView(mid_layout, mid_layout_params);

這是一個相對複雜的動態佈局。供參考。 

                                                                                                                                                                    -end 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章