Android中的九宮格

2021-07-25 17:16:54 字數 2527 閱讀 6024

1、實現基類

(1)item數量控制

private

void ensureitems(int

count)

} else

if (c > count)

}for (int i = 0; i < getchildcount(); i++)

}

(2)mearsure處理

@override

protected

final

void

onmeasure(int widthmeasurespec, int heightmeasurespec)

}super.onmeasure(widthmeasurespec, heightmeasurespec);

}

(3)layout處理

@override

protected

final

void

onlayout(boolean changed, int l, int t, int r, int b)

}}

(4)基類函式

//建立乙個view

protected

abstract view oncreateitemview();

//銷毀乙個view

protected

abstract

void

ondestroyitemview(view view);

//初始化乙個view

protected

abstract

void

oninititemview(view view);

//取出丈量基準

protected

abstract

boolean

getmeasurebase();

//取出整個控制項的大小

protected

abstract rect getbound(int size, boolean base, int count);

//獲取單個子檢視

protected

abstract rect getitembounds(int width, int height, int count);

(5)自定義屬性

xml檔案

<?xml version="1.0" encoding="utf-8"?>

name="sudoku">

name="spacing"

format="integer"/>

name="item_background"

format="reference" />

declare-styleable>

resources>

引用到布局檔案

.netease

.study

.ui.sudoku

.sudokuview

android:id="@+id/sodoku"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:background="@color/colorbackground"

com.netease

.study

.ui.sudoku

.sudokuview>

初始化屬性

private void initattrs(context context, attributeset attrs, int defstyleattr, int defstyleres)
(6)定位

protected rect getbound(int size, boolean base, int count) 

@override

protected rect getitembounds(int width, int height, int count)

return bounds;

}

(7)手勢探測

private

void

init(context context)

});}

//手勢動作

private

final gesturedetector gesturedetector = new gesturedetector(null, new gesturedetector.******ongesturelistener()

//雙擊

@override

public

boolean

ondoubletap(motionevent e)

});

九宮格布局

2009 08 25 15 15 27 九宮格是一種比較古老的設計,它最基本的表現其實就像是乙個三行三列的 其實它最初是在window的c s結構中用得比較多,比如我們經常看 到軟體中的乙個窗體,其實就是乙個九宮格的典型應用,因為窗體需要在八個方向拉伸,所以在c s軟體中大量採用這種技術來布局設計。...

九宮格問題

include include stl 雙端佇列容器 include include pos.h using namespace std ofstream fout sudoku.txt deque d int lay deque d int checkout pos p,int n int sud...

九宮格排布

在我們設定ui時,肯定會遇到設定九宮格的效果 如上圖所示,我們如何讓展示出來哪?首先我們會發現 每行的的 y 值是一樣的 行數決定 y 值 每列的的 x 值是一樣的 列數決定 x 值 綜上所述 我們只要知道每張的 行數 和 列數 那麼,它的座標自然就肯定了 我們怎樣確定 行數 和 列數那?我們發現 ...