亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么這種寫法會出現3*3 的布局,不會是1*9 或者 9*1 了,那里體現出來了3*3 ,

/**

* 設置Imageview(Item) 的寬度等屬性

*/

private void initItem()

{// 第一步驟,首先是拿到item 的一個寬度,首先是獲得每一個item 的寬度,容器的寬度減去邊距,減去中間的間隔,然后除以個數

mItemWidth = (mWidth - mPadding * 2 - mMargin * (mColumn - 1))

/ mColumn;

mGamePintuItems = new ImageView[mColumn * mColumn];

// ?生成我們的item,設置rule(也就是我們的關系)

for (int i = 0; i < mGamePintuItems.length; i++)

{

ImageView item = new ImageView(getContext());

item.setOnClickListener(this); // 我們有點擊事件

item.setImageBitmap(mItemBitmaps.get(i).getBitmap());// 設置出來圖片是亂的


mGamePintuItems[i] = item;

item.setId(i + 1); //設置id relativielayout 提供了很多的rule ,但是rule 中的rightof ? leftof 中間填寫的是id?


//在item 的tag ?中存儲了index,雖然我們亂序了,但是我們的Index 還是保存的是原來的位置。也就是我們判定拼圖成功的時候,我們的index就展現了

item.setTag(i + "_" + mItemBitmaps.get(i).getIndex());

// 給每一個item ?寫,我們是在relativie 中,所以我們就引用這個。

RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(

mItemWidth, mItemWidth);


// 設置item 的橫線間隙首先判定是不是最后一列,要是不是最后一列我們就設置rightMargin

// 不是最后一列

if ((i + 1) % mColumn != 0)

{

lp.rightMargin = mMargin;

}

// 涓嶆槸絎竴鍒?

if (i % mColumn != 0)

{

lp.addRule(RelativeLayout.RIGHT_OF,

mGamePintuItems[i - 1].getId());

}

// 濡傛灉涓嶆槸絎竴琛?, 璁劇疆topMargin鍜宺ule

if ((i + 1) > mColumn)

{

lp.topMargin = mMargin;

lp.addRule(RelativeLayout.BELOW,

mGamePintuItems[i - mColumn].getId());

}

addView(item, lp);

}


}


正在回答

2 回答

第一關 3行3列 ?第二關4行4列 ?依次........... ? 所以是3*3

0 回復 有任何疑惑可以回復我~
#1

xiaoxiaohuahua 提問者

非常感謝!
2016-10-18 回復 有任何疑惑可以回復我~

你好,不是在這個類里面可以看出為什么會是3*3;而是在切圖工具類里面。定義了每個圖片碎塊的寬高是Wiidth(圖片寬度)/pieces(碎片個數)

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Android美女拼圖小游戲
  • 參與學習       25689    人
  • 解答問題       99    個

本視頻教程將帶領大家通過自定義控件實現一個拼圖游戲

進入課程

為什么這種寫法會出現3*3 的布局,不會是1*9 或者 9*1 了,那里體現出來了3*3 ,

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號