0

私のアプリでは、顔の写真を撮って、別の写真を撮れる場所で削除するまで表示する必要があります。アプリを最初に開いたときに何が起こっているかというと、レイアウト背景のピンクのサイド ラインが表示されますが、写真を撮るとピンクのラインが消えます。バックラウンドビットマップを設定しているイメージビューが幅と高さで match_parent であるため、これは発生しないはずです

2番目の問題は、背景のイメージビューを前に背景に戻すと、中央が透明になるため、カメラが指している場所を確認できるため、元に戻しても発生しません。画面は透明な中央に戻るはずですが、takePicture が実行されたときに撮影されたスクリーンショットのままです。私は今私の髪を引き裂いているので、助けてくれてありがとう

ここに画像の説明を入力

   background_view = (ImageView) view.findViewById(R.id.backround_view);
            background = BitmapFactory.decodeResource(getResources(), R.drawable.camera_backround);
            background_view.setImageBitmap(background);

private void takePicture() {
        if (picturePresent == false) {
            edit_button.setVisibility(View.INVISIBLE);

            pictureBitmap = getBitmapFromView();

            edit_button.setVisibility(View.VISIBLE);

            closeCamera();
            stopBackgroundThread();

            BitmapDrawable bitmapDrawable = new BitmapDrawable(getResources(), pictureBitmap);
            background_view.setBackground(bitmapDrawable);
            picturePresent = true;

        } else {
        }
    }


    private void deletePicture() {
        if (picturePresent == true) {
            startBackgroundThread();
            openCamera(mTextureView.getWidth(), mTextureView.getHeight());
            background_view.setImageBitmap(background);
            picturePresent = false;
        } else {
        }
    }

    public Bitmap getBitmapFromView() {
        Bitmap bitmap = mTextureView.getBitmap();
        Bitmap bitmap2 = BitmapFactory. decodeResource(getResources(), R.drawable.camera_backround);
        Bitmap bmOverlay = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), bitmap.getConfig());
        Canvas canvas = new Canvas(bmOverlay);
        canvas.drawBitmap(bitmap, new Matrix(), null);
        canvas.drawBitmap(bitmap2, new Matrix(), null);
        return bmOverlay;
    }

XML

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
             xmlns:tools="http://schemas.android.com/tools"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
             tools:context="yourfacelivewallpaper.alexcz.yourfacelivewallpaper.CameraFragment"
                android:background="#ffbf1ec5">

    <!-- TODO: Update blank fragment layout -->

    <view
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        class="yourfacelivewallpaper.alexcz.yourfacelivewallpaper.AutoFitTextureView"
        android:id="@+id/texture"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"/>

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/backround_view"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true"
        android:longClickable="false"
        android:layout_alignParentEnd="true"
        android:layout_alignParentStart="true"/>
4

2 に答える 2

1

android:scaleType="fitXY"

上記のコードを xml ファイルに追加します。

于 2016-08-12T18:47:21.587 に答える