Android佈局中動態新增ImageView並設定間隔

zhangdi_gdk2016發表於2019-07-23

要求:引導圖中的小圓點跟隨著滑動的圖片滑動,小圓點有一定的間隔。

具體實現:

1.佈局檔案

<LinearLayout
        android:id="@+id/ll_guide_point"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="40dp"
        android:gravity="center_horizontal"
        android:orientation="horizontal" />

2.程式碼檔案

    /**
     * 載入底部圓點
     */
    private void initPoint() {
        //這裡例項化LinearLayout
        llGuidePoint = findViewById(R.id.ll_guide_point);
        //根據ViewPager的item數量例項化陣列
        ivPointArray = new ImageView[viewList.size()];
        //迴圈新建底部圓點ImageView,將生成的ImageView儲存到陣列中
        int size = viewList.size();
        for (int i = 0; i < size; i++) {
            iv_point = new ImageView(this);
            LinearLayout.LayoutParams lp = new 
            LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
                    LinearLayout.LayoutParams.WRAP_CONTENT);
            //設定小圓點的間距
            lp.setMargins(20, 0, 20, 0);
            iv_point.setLayoutParams(lp);
            ivPointArray[i] = iv_point;
            //第一個頁面需要設定為選中狀態,這裡採用兩張不同的圖片
            if (i == 0) {
                iv_point.setBackgroundResource(R.drawable.guide_dot_select);
            } else {
                iv_point.setBackgroundResource(R.drawable.guide_dot_unselect);
            }
            //將陣列中的ImageView加入到ViewGroup
            llGuidePoint.addView(ivPointArray[i]);
        }
    }

剛開始設定小圓點的間距怎麼都不好使,

//設定小圓點的間距
iv_point.setPadding(20,0,20,0);

最後,小圓點的間距的設定,不是設定動態生成的imageView的邊距,而是獲取當前LayoutParams物件,然後設定邊距,剛才測試一下好使。希望對大家有幫助。

轉載請註明處,謝謝!

相關文章