È ansible scalare drawableleft & drawableright in textview?

Ho list con l'articolo è un TextView ; e usando drawableleft & drawableright per introdurre il TextView . il problema è che each volta che il text in visualizzazione di text è maggiore, il drawableleft & drawableleft non sono scalabili automaticamente in base all'altezza di TextView .

È ansible scalare l'altezza del drawableleft e drawableright in visualizzazione di text? (Stavo usando 9 immagini patch)

  • Ridurre la dimensione del carattere dei componenti di AlertDialog.Builder
  • Android Studio non riesce a eseguire il debug con l'errore: l'esecuzione non è rioutput per l'attività ': app: preDexDebug'.Pl
  • come caricare l'image con Universal ImageLoader senza visualizzare
  • La creazione di Travis CI non funziona con il layout di restrizione di Android
  • NullPointerException in handleStopActivity - Nessun riferimento al mio codice nella traccia dello stack
  • Gridview con layout (imageview + imagebutton) per each valore
  • problema di altezza di disegno del drawableleft & drawableright

  • NullPointerException quando si utilizza RelativeLayout come InfoWindow personalizzato
  • Dove è connesso () e disconnessione () implementato?
  • lo studio android non è in grado di connettersi ai dispositivi di debug
  • Errore di installazione: INSTALL_FAILED_UID_CHANGED nessuna radice
  • Sfondi Android differenti di EditText per diversi stati che utilizzano forms, selettore o elenco
  • osx maven running test Eccezione: java.lang.OutOfMemoryError lanciato da UncaughtExceptionHandler nel thread "main"
  • 6 Solutions collect form web for “È ansible scalare drawableleft & drawableright in textview?”

    Questo potrebbe aiutarti. Ci sono due properties; scaleX e scaleY

    Il codice riportto di seguito ridurrà l'image e il text con il 30%. Pertanto è necessario aumentare la dimensione del carattere con quei molti "sp", in modo che quando ottenga ri-size (scalata) si adatterà "sp" che preferisci.

    Esempio. Se posso impostare il carattere su 18, allora il 30% su 18 è di 5.4 sp, quindi il valore che sto targeting è approssimativamente, perché quando viene ridimensionato diventerà 13sp

     <TextView android:textSize="18sp" android:scaleX="0.7" android:scaleY="0.7" 

    L'ultima cosa da fare è impostare il CompundDrawable.

     tview.setCompoundDrawablesWithIntrinsicBounds(getResources().getDrawable(R.drawable.xxx), null, null, null); 

    Ho risolto un usecase equivalente introducendo una ScaleDrawable e superando il suo .getIntrisicHeight() modo che sia alless l'altezza di TextView . La parte TextView.addOnLayoutChangeListener , necessaria per Drawable il Drawable su una variabile di dimensione di TextView funziona con API11 +

     Drawable underlyingDrawable = new BitmapDrawable(context.getResources(), result); // Wrap to scale up to the TextView height final ScaleDrawable scaledLeft = new ScaleDrawable(underlyingDrawable, Gravity.CENTER, 1F, 1F) { // Give this drawable a height being at // least the TextView height. It will be // used by // TextView.setCompoundDrawablesWithIntrinsicBounds public int getIntrinsicHeight() { return Math.max(super.getIntrinsicHeight(), competitorView.getHeight()); }; }; // Set explicitly level else the default value // (0) will prevent .draw to effectively draw // the underlying Drawable scaledLeft.setLevel(10000); // Set the drawable as a component of the // TextView competitorView.setCompoundDrawablesWithIntrinsicBounds( scaledLeft, null, null, null); // If the text is changed, we need to // re-register the Drawable to recompute the // bounds given the new TextView height competitorView.addOnLayoutChangeListener(new OnLayoutChangeListener() { @Override public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) { competitorView.setCompoundDrawablesWithIntrinsicBounds(scaledLeft, null, null, null); } }); 

    Non ho trovato modo. Ma quello che mostri sembra un elenco di elementi. Ogni elemento sarebbe un orizzontale LinearLayout con immagini visualizzate da sinistra a destra e text in centro. La dimensione dell'image fa un android: scaleType = "fitXY" per ajust l'altezza di formato all'altezza di testview. Se non si desidera utilizzare deform de image utilizzare scaleType = "CENTER_INSIDE". http://developer.android.com/reference/android/widget/ImageView.ScaleType.html

     <LinearLayout android:layout_width="fill_parent" android:id="@+id/HeaderList" android:layout_gravity="top" android:layout_height="wrap_content" > <ImageView android:id="@+id/backImg" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_centerInParent="true" android:adjustViewBounds="true" android:background="@color/blancotransless" android:src="@drawable/header" android:scaleType="fitXY" > </ImageView> <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/NameText" android:text="The time of prayer" android:textColor="#FFFFFF" android:textSize="30sp" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:paddingLeft="4dp" android:paddingTop="4dp" /> <ImageView android:id="@+id/backImg" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_centerInParent="true" android:adjustViewBounds="true" android:background="@color/blancotransless" android:src="@drawable/header" android:scaleType="fitXY" > </ImageView> </LinearLayout> 

    Basta fare la priorità a 9 vie ripetendo questo pattern.

    E sembra anche che sarà meglio guardare nel caso in cui il model verrà applicato all'elenco, non a un singolo elemento.

    Si prega di provare questo codice. Questo può aiutarti.

     Drawable TextViewDrawable = context.getResources().getDrawable(imageId); TextViewDrawable.setBounds(0, 0, TextViewDrawable.getIntrinsicWidth(), TextViewDrawable.getIntrinsicHeight()); text_view.setCompoundDrawables(left, top, right, bottom); 

    Speriamo questo aiuto

     Textview tv = (TextView) findViewById(R.id.tv_dummy) int imageResource = R.mipmap.ic_image; Drawable drawable = ContextCompat.getDrawable(context, imageResource); int pixelDrawableSize = (int)Math.round(tv.getLineHeight() * 0.7); // Or the percentage you like (0.8, 0.9, etc.) drawable.setBounds(0, 0, pixelDrawableSize, pixelDrawableSize); // setBounds(int left, int top, int right, int bottom), in this case, drawable is a square image tv.setCompoundDrawables( null, //left null, //top drawable, //right null //bottom ); 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.