2017-05-06 16 views
2

실제로 솔루션과 질문에 대한 답변이 모두 나와 있습니다. 그래서, 여기까지 내가 지금까지 시도한 것이 있습니다!ScrollView Android 전체 화면 캡처

Scroll_Layout.xml

<ScrollView 
    android:id="@+id/scrollView" 
    android:layout_width="0dp" 
    android:layout_height="0dp" 
    tools:layout_constraintTop_creator="1" 
    tools:layout_constraintRight_creator="1" 
    tools:layout_constraintBottom_creator="1" 
    android:layout_marginStart="8dp" 
    app:layout_constraintBottom_toBottomOf="parent" 
    android:layout_marginEnd="8dp" 
    app:layout_constraintRight_toRightOf="parent" 
    android:layout_marginTop="8dp" 
    tools:layout_constraintLeft_creator="1" 
    android:layout_marginBottom="8dp" 
    app:layout_constraintLeft_toLeftOf="parent" 
    app:layout_constraintTop_toTopOf="parent"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical"> 
     <TextView 
      android:id="@+id/txtAddress" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="ADDRESS" 
      android:textSize="40px" 
      android:textColor="@android:color/black"/> 
     <EditText 
      android:id="@+id/edtName" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:hint="Enter Address" 
      android:text="lorem emisidjsi damsodks"/> 
     <TextView 
      android:id="@+id/txtPostal" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="POSTAL CODE" 
      android:textSize="40px" 
      android:layout_marginTop="10dp" 
      android:textColor="@android:color/black"/> 
     <EditText 
      android:id="@+id/edtPostal" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:hint="Enter Postal Code" 
      android:text="123456"/> 

     <TextView 
      android:id="@+id/txtCity" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="10dp" 
      android:text="CITY/GNR" 
      android:textColor="@android:color/black" 
      android:textSize="40px" /> 

     <EditText 
      android:id="@+id/edtCity" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:text="Loresm" 
      android:hint="Enter City"/> 
     <TextView 
      android:id="@+id/txtBnr" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="BNR" 
      android:textSize="40px" 
      android:layout_marginTop="10dp" 
      android:textColor="@android:color/black"/> 
     <EditText 
      android:id="@+id/edtBnr" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:hint="Enter BNR" 
      android:text="1122"/> 
     <TextView 
      android:id="@+id/txtSize" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="SIZE" 
      android:textSize="40px" 
      android:layout_marginTop="10dp" 
      android:textColor="@android:color/black"/> 
     <EditText 
      android:id="@+id/edtSize" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:hint="Enter Size" 
      android:text="50 x 400 x 200"/> 
     <TextView 
      android:id="@+id/txtRental" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="RENTAL" 
      android:textSize="40px" 
      android:layout_marginTop="10dp" 
      android:textColor="@android:color/black"/> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:weightSum="3" 
      android:layout_marginTop="5dp" 
      android:orientation="horizontal"> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:orientation="vertical"> 
       <RadioButton 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center" 
        android:buttonTint="@color/colorPrimary"/> 
       <TextView 
        android:id="@+id/txtFull" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:text="Full" 
        android:textSize="40px" 
        android:layout_marginTop="10dp" 
        android:textColor="@android:color/black" 
        android:textAlignment="center"/> 

      </LinearLayout> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:orientation="vertical"> 
       <RadioButton 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center" 
        android:buttonTint="@color/colorPrimary"/> 
       <TextView 
        android:id="@+id/txtPartial" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:text="Partial" 
        android:textSize="40px" 
        android:layout_marginTop="10dp" 
        android:textColor="@android:color/black" 
        android:textAlignment="center"/> 

      </LinearLayout> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:orientation="vertical"> 
       <RadioButton 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center" 
        android:buttonTint="@color/colorPrimary"/> 
       <TextView 
        android:id="@+id/txtRentalNo" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:text="No" 
        android:textSize="40px" 
        android:layout_marginTop="10dp" 
        android:textColor="@android:color/black" 
        android:textAlignment="center"/> 

      </LinearLayout> 

     </LinearLayout> 

     <TextView 
      android:id="@+id/txtBasement" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="BASEMENT" 
      android:textSize="40px" 
      android:layout_marginTop="10dp" 
      android:textColor="@android:color/black"/> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:weightSum="3" 
      android:layout_marginTop="5dp"> 
      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:orientation="vertical"> 
       <RadioButton 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center" 
        android:buttonTint="@color/colorPrimary" /> 
       <TextView 
        android:id="@+id/txtFurnished" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:text="Furnished" 
        android:textSize="40px" 
        android:layout_marginTop="10dp" 
        android:textColor="@android:color/black" 
        android:textAlignment="center"/> 

      </LinearLayout> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:orientation="vertical"> 
       <RadioButton 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center" 
        android:buttonTint="@color/colorPrimary"/> 
       <TextView 
        android:id="@+id/txtUnFurnished" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:text="Un-Furnished" 
        android:textSize="40px" 
        android:layout_marginTop="10dp" 
        android:textColor="@android:color/black" 
        android:textAlignment="center"/> 

      </LinearLayout> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:orientation="vertical"> 
       <RadioButton 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center" 
        android:buttonTint="@color/colorPrimary"/> 
       <TextView 
        android:id="@+id/txtBasementNo" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:text="No" 
        android:textSize="40px" 
        android:layout_marginTop="10dp" 
        android:textColor="@android:color/black" 
        android:textAlignment="center"/> 

      </LinearLayout> 
     </LinearLayout> 

     <TextView 
      android:id="@+id/txtType" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="TYPE" 
      android:textSize="40px" 
      android:layout_marginTop="10dp" 
      android:textColor="@android:color/black"/> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:weightSum="3" 
      android:layout_marginTop="5dp"> 
      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:orientation="vertical"> 
       <RadioButton 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center" 
        android:buttonTint="@color/colorPrimary"/> 
       <TextView 
        android:id="@+id/txtDetached" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:text="Detached" 
        android:textSize="40px" 
        android:layout_marginTop="10dp" 
        android:textColor="@android:color/black" 
        android:textAlignment="center"/> 

      </LinearLayout> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:orientation="vertical"> 
       <RadioButton 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center" 
        android:buttonTint="@color/colorPrimary"/> 
       <TextView 
        android:id="@+id/txtSemiDetached" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:text="Semi-Detached" 
        android:textSize="40px" 
        android:layout_marginTop="10dp" 
        android:textColor="@android:color/black" 
        android:textAlignment="center"/> 

      </LinearLayout> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:orientation="vertical"> 
       <RadioButton 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center" 
        android:buttonTint="@color/colorPrimary"/> 
       <TextView 
        android:id="@+id/txtTownHouse" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:text="Town-House" 
        android:textSize="40px" 
        android:layout_marginTop="10dp" 
        android:textColor="@android:color/black" 
        android:textAlignment="center"/> 

      </LinearLayout> 
     </LinearLayout> 

     <android.support.v7.widget.AppCompatSpinner 
      android:layout_width="match_parent" 
      android:layout_height="35dp" 
      android:layout_marginTop="20dp" 
      android:entries="@array/arr_add_buildings"> 
     </android.support.v7.widget.AppCompatSpinner> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:weightSum="2" 
      android:layout_marginTop="5dp"> 
      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:orientation="vertical" 
       android:paddingRight="20dp"> 
       <TextView 
        android:id="@+id/txtYear" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:text="YEAR" 
        android:textSize="40px" 
        android:layout_marginTop="10dp" 
        android:textColor="@android:color/black"/> 
       <EditText 
        android:id="@+id/edtYear" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:hint="Enter Year" 
        android:text="2011"/> 
      </LinearLayout> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:orientation="vertical"> 
       <TextView 
        android:id="@+id/txtBldSize" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:text="SIZE" 
        android:textSize="40px" 
        android:layout_marginTop="10dp" 
        android:textColor="@android:color/black"/> 
       <EditText 
        android:id="@+id/edtBdlSize" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:hint="Enter Size" 
        android:text="20 x 20"/> 
      </LinearLayout> 
     </LinearLayout> 

     <android.support.v7.widget.AppCompatSpinner 
      android:layout_width="match_parent" 
      android:layout_height="35dp" 
      android:layout_marginTop="5dp" 
      android:entries="@array/arr_deductible"> 
     </android.support.v7.widget.AppCompatSpinner> 

     <TextView 
      android:id="@+id/txtCoverage" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="COVERAGE" 
      android:textSize="40px" 
      android:layout_marginTop="10dp" 
      android:textColor="@android:color/black"/> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:weightSum="2" 
      android:layout_marginTop="5dp"> 
      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:orientation="vertical"> 
       <RadioButton 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center" 
        android:buttonTint="@color/colorPrimary"/> 
       <TextView 
        android:id="@+id/txtNormal" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:text="Normal" 
        android:textSize="40px" 
        android:layout_marginTop="10dp" 
        android:textColor="@android:color/black" 
        android:textAlignment="center"/> 

      </LinearLayout> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:orientation="vertical"> 
       <RadioButton 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center" 
        android:buttonTint="@color/colorPrimary"/> 
       <TextView 
        android:id="@+id/txtSuper" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:text="Super" 
        android:textSize="40px" 
        android:layout_marginTop="10dp" 
        android:textColor="@android:color/black" 
        android:textAlignment="center"/> 

      </LinearLayout> 

     </LinearLayout> 

     <TextView 
      android:id="@+id/txtComments" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="10dp" 
      android:text="COMMENTS" 
      android:textColor="@android:color/black" 
      android:textSize="40px" /> 

     <EditText 
      android:id="@+id/edtComments" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:text="white walls" 
      android:hint="Enter Comments"/> 

     <Button 
      android:id="@+id/save" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="30dp" 
      android:layout_marginRight="30dp" 
      android:layout_marginTop="20dp" 
      android:text="SAVE" 
      android:textSize="50px" 
      android:textColor="@android:color/white" 
      android:backgroundTint="@color/colorPrimary" /> 

    </LinearLayout> 

</ScrollView> 

솔루션, 내가 지금까지 시도!

방법 1 :

public Bitmap takeScreenshot() { 
    View rootView = getWindow().getDecorView().findViewById(R.id.scrollView); //Instead of ScrollView I have taken Main view to but no luck 
    rootView.setDrawingCacheEnabled(true); 
    return rootView.getDrawingCache(); 
} 

방법 2 :

public Bitmap takeScreenshot() { 
    View rootView = getWindow().getDecorView().findViewById(R.id.constraintLayout); //Here also I have taken ScrollView too. 
    Bitmap b = Bitmap.createBitmap(rootView.getWidth() , rootView.getHeight(), Bitmap.Config.ARGB_8888); 
    Canvas c = new Canvas(b); 
    rootView.layout(0, 0, rootView.getLayoutParams().width, rootView.getLayoutParams().height); 
    rootView.draw(c); 
     return b; 
} 

방법 3 :

public Bitmap takeScreenshot() { 
    ScrollView iv = (ScrollView) findViewById(R.id.scrollView); 
    Bitmap bitmap = Bitmap.createBitmap(
      iv.getChildAt(0).getWidth(), 
      iv.getChildAt(0).getHeight(), 
      Bitmap.Config.ARGB_8888); 
    Canvas c = new Canvas(bitmap); 
    iv.getChildAt(0).draw(c); 
    return bitmap; 
} 

위의 모든 방법에서 "검은 색"배경 화면을 캡처하고 있습니다. 이 외에도 다른 솔루션을 가진 사람이 있습니까? 아니면 스크린 샷을 찍는 데 실수가 있습니까?

+0

이 rootView.setDrawingCacheEnabled (true)를 시도 바랍니다; rootView.buildDrawingCache(); 비트 맵 b2 = rootView.getDrawingCache(); { b2.compress (Bitmap.CompressFormat.JPEG, 100, 새 FileOutputStream (새 파일 (""))); } catch (FileNotFoundException e) { e.printStackTrace(); } –

+0

@DivyeshPatel 이미 완료되었으므로 방법 1을 확인하십시오! –

+0

하지만 rootView.buildDrawingCache()를 호출 했습니까? getDrawingCache 전에 메서드를? –

답변

5

나는이 당신을 위해 일 .. 소스 here

Bitmap bitmap = getBitmapFromView(scrollview, scrollview.getChildAt(0).getHeight(), scrollview.getChildAt(0).getWidth()); 

//create bitmap from the ScrollView 
private Bitmap getBitmapFromView(View view, int height, int width) { 
    Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); 
    Canvas canvas = new Canvas(bitmap); 
    Drawable bgDrawable = view.getBackground(); 
    if (bgDrawable != null) 
     bgDrawable.draw(canvas); 
    else 
     canvas.drawColor(Color.WHITE); 
    view.draw(canvas); 
    return bitmap; 
} 
+0

이전 솔루션이 효과가있었습니다! 왜 당신을 제거 했습니까? –

+0

oh..i 관련 기능에 집중하고 싶습니다 .. 전체 코드를 보려면 내 블로그를 방문 할 수 있습니다 .. : D – ZeroOne

+0

감사합니다 :) 전체 스크린 샷이 화면보다 커졌습니다. –