ImageView不适合屏幕的两侧

时间:2016-08-12 18:24:57

标签: android camera2

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

第二个问题是,当我将背景图像视图设置回到中心前面的透明背景时,即使我设置它也可以看到相机指向的位置不会发生背部。屏幕应该恢复到透明中心,但它会保留在运行takePicture时拍摄的屏幕截图。感谢任何帮助,因为我现在正在撕开我的头发

enter image description here

   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"/>

2 个答案:

答案 0 :(得分:1)

机器人:scaleType = “fitXY”

在xml文件中添加以上代码。

答案 1 :(得分:0)

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