Screenshot zeigt schwarz

Ich nehme Schnappschüsse und Creat Thumbnails und teile dann dieses Bild. Aber die Miniaturansicht zeigt alles Schwarz. Ich habe den folgenden Code benutzt

Bitmap bitmap; View v1 = v.getRootView(); v1.setDrawingCacheEnabled(true); bitmap = Bitmap.createBitmap(v1.getDrawingCache()); String url = Images.Media.insertImage( mContext.getContentResolver(), bitmap, "title", null); 

Kann mir jemand sagen, was mit diesem Code falsch ist.

BEARBEITEN

 private View.OnClickListener shareListener = new View.OnClickListener() { public void onClick(View v) { Bitmap bitmap; View v1 = v.getRootView(); v1.setDrawingCacheEnabled(true); bitmap = Bitmap.createBitmap(v1.getDrawingCache()); String url = Images.Media.insertImage( mContext.getContentResolver(), bitmap, "title", null); v1.setDrawingCacheEnabled(false); Activity activity = (Activity) getContext(); Intent share = new Intent(Intent.ACTION_SEND); share.setType("image/jpeg"); share.putExtra(Intent.EXTRA_STREAM, Uri.parse(url)); activity.startActivity(Intent.createChooser(share, "Share")); } }; 

Schwarzes Bild Bildbeschreibung hier eingeben

  • Android Screenshot auf verwurzeltes Gerät
  • Screen Capture in Android
  • Pfad zu Screenshots in Android
  • Verhindern Bildschirmaufnahmen in Android Apps
  • Hochauflösender Screenshot in Android
  • Wie Rearrange Screenshots bei Google Play
  • Wie man Screenshot in Android Emulator zu nehmen
  • Generiere iPhone und iPad Screenshots einschließlich Geräterahmen
  • 5 Solutions collect form web for “Screenshot zeigt schwarz”

    Verwenden Sie folgenden Code, den es für Sie arbeiten kann. Vielen Dank

     SCREENSHOTS_LOCATIONS = Environment.getExternalStorageDirectory().toString() + "/screenshots/"; // Get root view View view = activity.getWindow().getDecorView().getRootView(); // Create the bitmap to use to draw the screenshot final Bitmap bitmap = Bitmap.createBitmap(screenWidth, screenHeight, Bitmap.Config.ARGB_8888); final Canvas canvas = new Canvas(bitmap); // Get current theme to know which background to use final Theme theme = activity.getTheme(); final TypedArray ta = theme .obtainStyledAttributes(new int[] { android.R.attr.windowBackground }); final int res = ta.getResourceId(0, 0); final Drawable background = activity.getResources().getDrawable(res); // Draw background background.draw(canvas); // Draw views view.draw(canvas); // Save the screenshot to the file system FileOutputStream fos = null; try { final File sddir = new File(SCREENSHOTS_LOCATIONS); if (!sddir.exists()) { sddir.mkdirs(); } fos = new FileOutputStream(SCREENSHOTS_LOCATIONS + System.currentTimeMillis() + ".jpg"); if (fos != null) { if (!bitmap.compress(Bitmap.CompressFormat.JPEG, 90, fos)) { Log.d("ScreenShot", "Compress/Write failed"); } fos.flush(); fos.close(); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } 

    Versuchen

     v1.setDrawingCacheEnabled(true); // this is the important code :) // Without it the view will have a dimension of 0,0 and the bitmap will be null v1.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); v1.layout(0, 0, v1.getMeasuredWidth(), v1.getMeasuredHeight()); //Forces the drawing cache to be built if the drawing cache is invalid. v1.buildDrawingCache(true); Bitmap b = Bitmap.createBitmap(v1.getDrawingCache()); v1.setDrawingCacheEnabled(false); // clear drawing cache 

    Versuchen Sie, diesen Code anzuwenden:

     private File takeScreenshot(boolean showToast) { View v = getWindow().getDecorView(); v.setDrawingCacheEnabled(true); Bitmap cachedBitmap = v.getDrawingCache(); Bitmap copyBitmap = cachedBitmap.copy(Bitmap.Config.RGB_565, true); FileOutputStream output = null; File file = null; try { File path = Places.getScreenshotFolder(); Calendar cal = Calendar.getInstance(); file = new File(path, cal.get(Calendar.YEAR) + "_" + (1 + cal.get(Calendar.MONTH)) + "_" + cal.get(Calendar.DAY_OF_MONTH) + "_" + cal.get(Calendar.HOUR_OF_DAY) + "_" + cal.get(Calendar.MINUTE) + "_" + cal.get(Calendar.SECOND) + ".png"); output = new FileOutputStream(file); copyBitmap.compress(CompressFormat.PNG, 100, output); } catch (FileNotFoundException e) { file = null; e.printStackTrace(); } finally { if (output != null) { try { output.close(); } catch (IOException e) { e.printStackTrace(); } } } if (file != null) { if (showToast) Toast.makeText(getApplicationContext(), "Saved " + file.getAbsolutePath(), Toast.LENGTH_LONG).show(); // sending a broadcast to the media scanner so it will scan the new // screenshot. Intent requestScan = new Intent( Intent.ACTION_MEDIA_SCANNER_SCAN_FILE); requestScan.setData(Uri.fromFile(file)); sendBroadcast(requestScan); return file; } else { return null; } } 

    Das funktioniert perfekt für mich. Hoffe das wird dir helfen

    Vielleicht passiert das, weil dein Bereich als sicher markiert ist. Während die Symbole angezeigt werden, wird die Ansicht, die Ihren Inhalt anzeigt, schwarz, weil es sicher ist:

    Kann der Benutzer einen leeren Bereich auf dem Bildschirm sehen, anstatt den Inhalt von sicheren Flächen oder geschützten Puffern.

    http://developer.android.com/reference/android/view/Display.html#FLAG_SECURE

    Versuchen Sie diesen Code .. Es sollte Arbeit sein.

     linearLayout.setDrawingCacheEnabled(true); linearLayout.measure(MeasureSpec.makeMeasureSpec(linearLayout.getWidth(), MeasureSpec.AT_MOST),MeasureSpec.makeMeasureSpec(linearLayout.getHeight(), MeasureSpec.EXACTLY)); linearLayout.layout(0, 0, linearLayout.getMeasuredWidth(), linearLayout.getMeasuredHeight()); Bitmap b1 =linearLayout.getDrawingCache(); Bitmap bigbitmap = Bitmap.createBitmap(linearLayout.getMeasuredWidth(), linearLayout.getMeasuredHeight(), Bitmap.Config.ARGB_4444); Canvas bigcanvas = new Canvas(bigbitmap); Paint paint = new Paint(); bigcanvas.drawBitmap(b1, 0, 0, paint); int Measuredwidth = 0; int Measuredheight = 0; Point size = new Point(); WindowManager w = getWindowManager(); if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2){ w.getDefaultDisplay().getSize(size); Measuredwidth = size.x; Measuredheight = size.y; }else{ Display d = w.getDefaultDisplay(); Measuredwidth = d.getWidth(); Measuredheight = d.getHeight(); } Log.e(DEB_TAG, ""+Measuredwidth); Log.e(DEB_TAG, ""+Measuredheight); bigbitmap = Bitmap.createScaledBitmap(bigbitmap, Measuredwidth, Measuredheight, true); visiterCoverFlow.setScreenCache(bigbitmap); 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.