0

私は現在、そのようなタイプのプロジェクトを行っています。私の要件は、キャンバスにテキストを書き込む際に使用される x、y の合計位置を見つける方法です。

例えば ​​:

画像で表示、アルファベットで表示、A を作成するために使用される合計 x、y ポイントを見つけたい.

ここに画像の説明を入力

4

2 に答える 2

2

なぜそれをする必要があるのか​​ わかりませんが、ここに失礼な解決策があります:

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

于 2012-12-03T09:53:38.523 に答える
0

カスタムクラスを作成する

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);
    }
于 2012-12-03T09:46:45.233 に答える