2017-05-06 9 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; 
} 

上記のすべての方法で、「黒い」背景のスクリーンショットがあります。これらとは別に誰かが他の解決策を持っているのですか、私はScreenshotを取って何か間違いを犯していますか?

+0

(真)このrootView.setDrawingCacheEnabledを試してみてください。これはあなたのための仕事であると思います。 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

ありがとう:)それはスクリーンよりも大きいフルスクリーンショットのために働いた。 –