Android konvertieren XML-Ansicht zu Bitmap ohne es zu zeigen

Ich versuche, einen Blick auf meinen Kartencluster zu setzen. Ich bin aufblasen eine Ansicht aus einem XML und die Einstellung der Text nach Cluster-Größe und ich möchte diese Ansicht zu zeigen. Im folgenden kode ich bekomme eine Null-Bitmap im Gegenzug:

private Bitmap createClusterBitmap(int clusterSize) { View cluster = LayoutInflater.from(context).inflate(R.layout.map_cluster, null); cluster.setText(String.valueOf(clusterSize)); cluster.setDrawingCacheEnabled(true); cluster.buildDrawingCache(true); Bitmap bm = cluster.getDrawingCache(); return bm; } 

Im folgenden Code bekomme ich Nullzeiger auf der vierten Zeile (die Layout-Params):

  • Rand zwischen X-Achsen-Titel und X-Achsen-Etiketten in AChartEngine
  • Kann ich Multidex nur im Android-Debug-Build aktivieren?
  • Einen Intervall-Timer in Java android machen
  • Facebook login Kann nicht veröffentlichen oder verwalten Sie die Berechtigung (E-Mail) an eine Anfrage für Leseberechtigung
  • Einige Geräte erhalten keine FCM-Benachrichtigungen
  • Android-Studio-Rendering: null-Pointer-Ausnahme
  •  private Bitmap createClusterBitmap(int clusterSize) { View cluster = LayoutInflater.from(context).inflate(R.layout.map_cluster, null); TextView clusterSizeText = (TextView) cluster.findViewById(R.map.cluster); clusterSizeText.setText(String.valueOf(clusterSize)); Bitmap clusterBitmap = Bitmap.createBitmap( cluster.getLayoutParams().width, cluster.getLayoutParams().height, Bitmap.Config.ARGB_8888); Canvas clusterCanvas = new Canvas(clusterBitmap); cluster.layout(cluster.getLeft(), cluster.getTop(), cluster.getRight(), cluster.getBottom()); cluster.draw(clusterCanvas); return clusterBitmap; } 

    Und wenn ich es auf den folgenden Code ändere, bekomme ich keinen Fehler, aber nichts wird gezeichnet:

     private Bitmap createClusterBitmap(int clusterSize) { View cluster = LayoutInflater.from(context).inflate(R.layout.map_cluster, null); TextView clusterSizeText = (TextView) cluster.findViewById(R.map.cluster); clusterSizeText.setText(String.valueOf(clusterSize)); Bitmap clusterBitmap = Bitmap.createBitmap( 50,50 , Bitmap.Config.ARGB_8888); Canvas clusterCanvas = new Canvas(clusterBitmap); cluster.layout(50, 50, 50, 50; cluster.draw(clusterCanvas); return clusterBitmap; } 

    Das ist mein XML:

     <?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+map/cluster" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/map_pointer_cluster" android:gravity="center" android:orientation="vertical" android:textColor="@android:color/black" android:textSize="35dp" android:textStyle="bold" /> 

  • Wie viele WindowInsets gibt es?
  • Dynamic Radio Button Bedienung
  • Wie kann ich von Android WebView aus überprüfen, wenn eine Seite eine "404 Seite nicht gefunden" ist?
  • Gibt es eine Möglichkeit, die Anwendung direkt nach der Installation mit einigen "Helfer-Anwendung" zu starten?
  • Mehrere Clickable Links in TextView auf Android
  • Was bedeutet android: aktiviert für einen Service?
  • One Solution collect form web for “Android konvertieren XML-Ansicht zu Bitmap ohne es zu zeigen”

    Ihr cluster.getLayoutParams() ist wahrscheinlich null . Zuerst müssen Sie die Breite / Höhe Ihrer aufgeblasenen Ansicht messen und dann zuordnen. Mach es wie unten:

     private Bitmap createClusterBitmap(int clusterSize) { View cluster = LayoutInflater.from(context).inflate(R.layout.map_cluster, null); TextView clusterSizeText = (TextView) cluster.findViewById(R.id.map_cluster_text); clusterSizeText.setText(String.valueOf(clusterSize)); cluster.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); cluster.layout(0, 0, cluster.getMeasuredWidth(),cluster.getMeasuredHeight()); final Bitmap clusterBitmap = Bitmap.createBitmap(cluster.getMeasuredWidth(), cluster.getMeasuredHeight(), Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(clusterBitmap); cluster.draw(canvas); return clusterBitmap; } 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.