我想根據用戶的觸摸在網格視圖中的兩個單元格之間畫一條線?但我需要它從第一個單元格的中心到最後一個單元格的中心。那麼我怎樣才能得到細胞的中心點(x,y)呢?如何獲取gridView單元格的中心點?
這是我的代碼:
GridView lettersGrid;
GridAdapter ga;
StringBuilder word = new StringBuilder();
List<Integer> positions = new ArrayList<Integer>();
List<String> words;
Methods mthd;
int[] cellsColors;
int randomColor = 0;
Paint paint;
Canvas canvas;
Bitmap bitmap;
float downx = 0, downy = 0, upx = 0, upy = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lettersGrid = (GridView) findViewById(R.id.letters_grid);
ga = new GridAdapter(this);
mthd = new Methods();
cellsColors = new int[ga.getCount()];
paint = new Paint();
paint.setStrokeWidth(15);
Display currentDisplay = getWindowManager().getDefaultDisplay();
bitmap = Bitmap.createBitmap(currentDisplay.getWidth(), currentDisplay.getHeight(), Bitmap.Config.ARGB_8888);
canvas = new Canvas(bitmap);
lettersGrid.setAdapter(ga);
}//end onCreate
@Override
public boolean onTouch(View v, MotionEvent event) {
if(v.getId() == R.id.letters_grid){
int action = event.getActionMasked();
switch(action){
case MotionEvent.ACTION_DOWN:
downx = event.getX()+3;
downy = event.getY();
break;
case MotionEvent.ACTION_UP:
upx = event.getX();
upy = event.getY();
canvas.drawLine(downx, downy, upx, upy, paint);
break;
}
}
return false;
}
你想讓它在屏幕上顯示嗎?我的意思是,當滾動新的單元格與differend大小? –
將不會滾動。像單詞搜索遊戲一樣。 – Cooper
...觸摸事件與該行有什麼關係?此時您正在從DOWN位置向UP位置繪製一條線。 –