私は現在、そのようなタイプのプロジェクトを行っています。私の要件は、キャンバスにテキストを書き込む際に使用される x、y の合計位置を見つける方法です。
例えば :
画像で表示、アルファベットで表示、A を作成するために使用される合計 x、y ポイントを見つけたい.
私は現在、そのようなタイプのプロジェクトを行っています。私の要件は、キャンバスにテキストを書き込む際に使用される x、y の合計位置を見つける方法です。
例えば :
画像で表示、アルファベットで表示、A を作成するために使用される合計 x、y ポイントを見つけたい.
なぜそれをする必要があるのか わかりませんが、ここに失礼な解決策があります:
Map<Integer, Integer> result = new HashMap<Integer, Integer>();
for (int x = 0; x < bitmap.getWidth(); x++) {
for (int y = 0; y < bitmap.getHeight(); y++) {
int color = bitmap.getPixel(x, y);
if (color != BACKGROUND_COLOR) {
result.put(x, y);
}
}
}
ビットマップをループして、各ピクセルの色を背景色と比較するだけです。異なる場合は、現在のピクセルを結果マップに追加します。
取得方法がわからない場合は、この記事を参照Bitmap
してください。Canvas
カスタムクラスを作成する
public class CustomCanvas extends Canvas {
private Rect rect;
@Override
public void drawPicture(Picture picture, Rect dst) {
rect =dst;
super.drawPicture(picture, dst);
}
public Rect getRect() {
return rect;
}
}
CustomCanvasrectをから呼び出す
@Override
public boolean onTouchEvent(MotionEvent event) {
canvas.getRect().intersect((int)event.getX(),(int)event.getY(),0,0);
return super.onTouchEvent(event);
}