この問題は何日も私を悩ませてきましたが、一体なぜそれが起こっているのか分かりません. 顔を検出するメソッドがあります。顔が検出された場合、メソッドは顔に沿ってキャンバスに長方形を描画します。
その部分はうまく機能します。
問題は、xml ファイルの image_view に表示すると、画像ビューの左端中央に表示され、幅が fill_parent の中央ではなく、ボックス内に表示されることです。
可能な回避策を考えました:ビットマップをビットマップドローアブルとして設定しますが、キャンバスはビットマップのみを描画するため、中央にビットマップドローアブルを取得できますが、その周りに赤いボックスはありません。
ビットマップ ドローアブルのテストをコメントアウトし、現在の状態のままにしました... image_view の左端にある xml にのみ表示されます。ぜひ参考にしてみてください!
コードが少し長いので、pastebin に投稿しました (ビュー フリッパー内で線形レイアウトも使用しています)。
方法:
xml:
私は顔を検出することができ、ビットマップドローアブルをイメージボタンに貼り付けることができ、うまく中央に配置できるので、問題が解決できない場合、ビットマップドローアブルの周りに四角形を取得する方法はありますか?
ありがとう!
編集:私はそれを RelativeLayout に実装しようとしましたが、それでも同じことをしています:
Could this code be getting my way of centering?
public void processCameraImage(Intent intent) {
mFlipper.setDisplayedChild(1); // 1 == your second layout
mThePicture = (ImageView) findViewById(R.id.image_view); //
cameraBitmap = (Bitmap) intent.getExtras().get("data");
mThePicture.setImageBitmap(cameraBitmap);
detectFaces();
}