2016-08-12 76 views
0

那麼我的應用程序應該讓我拍一張我的臉的照片並顯示它,直到我刪除它,然後我可以再拍一張。我第一次打開應用程序時發生的事情是,佈局背景的粉紅色邊線顯示,但是當我拍照時,粉紅線消失。這不應該發生,因爲以上的寬度和高度match_parent即我設置底色位圖中的ImageView的ImageView不適合屏幕兩側

的第二個問題是,當我設置背景的ImageView回背景這之前是在中心透明的,以便即使我將其設置回來,也可以看到相機指向的位置不會發生。屏幕應該恢復到透明中心,但它保持運行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"/> 

回答

1

android:scaleType =「fitXY」

將以上代碼添加到xml文件中。

0

如果你的形象是小個你的ImageView它不會填滿屏幕。您應該將android:scaleType="fitCenter"添加到您的ImageView的佈局屬性中。