0

好吧,我的应用程序应该让我拍一张我的脸并显示它,直到我删除它,我可以再拍一张。当我第一次打开应用程序时发生的事情是布局背景的粉红色侧线显示,但是当我拍照时,粉红色线条消失了。这不应该发生,因为我将背景位图设置为的 imageview 在宽度和高度上是 match_parent

第二个问题是,当我将背景图像视图设置回背景时,之前的背景在中心是透明的,因此即使我将其设置回来,您也不会看到相机指向的位置。屏幕应该恢复到透明中心,但它会保留运行 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 回答
0

如果您的图像小于您的图像ImageView,它将不会填满屏幕。您应该添加android:scaleType="fitCenter"到您ImageView的布局属性。

于 2016-08-12T18:43:02.967 回答