私は画面の中央に4つの円を持つカメラアプリに取り組んでいます。実際の画面と一致しないlocationonsreenのAndroid座標
このようになります。
私の目標は、センターサークルの部品の画像のみを取得することです。
私のテスト戦術はこのようでした。
- 描画するキャンバスを使用し
(成功、実行される)1から撮影した写真を取得し、ImageViewの上に表示する(成功、行って)オーバーレイで
をフルスクリーンのカメラを実装オーバーレイサークルの位置にある青い円(失敗)
青い円が描画されますが、いくつかの奇妙な場所です。
ここに私のコードです。
//x, y = x, y coord of the left-top circle of the overlay.
//width = width of the left-top circle of the overlay.
Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setColor(Color.BLUE);
Canvas canvas = new Canvas(b);
canvas.drawCircle(x, y, width/2, paint);
imageView.setImageBitmap(b);
円は描かれていますが、実際は遠いところにあります。画面の下のほぼ下に表示されます。
半径は私が予想していたもののほぼ2倍です。
私はcanvas.drawCircle(x + width/2、y + height/2、...)を試しましたが、それは答えではないようです。
私は以下のコードを使ってx、y、幅を求めました。
int [] loc = new int[2];
circle1.locationOnScreen(loc);
int x = loc[0];
int y = loc[1];
int width = circle1.getWidth();
私のコードに問題がありますか? x、y、widthの値は0ではなく、意味のある値になります。しかし、円がどこになければならないのかは分かりません。
アクションバーはありません。私はテーマ値を使ってそれを無効にしました。画像ビューは全画面表示です。しかし、それを1/4に縮小すると、高さが少し小さくなるので、私はimageViewのフィット感のスケーリングを使って画面を完全に合わせました。 – March3April4