The Android custom TextView drawableTop icon is left aligned with the text (), and textview is left aligned
Public class DrawableTopLeftTextView extends TextView {private Paint mPaint; private float fFontHeight; private Drawable [] drawables; private int leftMargin = 40; // The TODO object must be obtained through code, public DrawableTopLeftTextView (Context context, AttributeSet attrs, int defStyle) {super (context, attrs, defStyle); init ();} public DrawableTopLeftTextView (Context context, AttributeSet attrs) {super (context, attrs); init ();} Public DrawableTopLeftTextView (Context context) {super (context); init ();} private void init () {mPaint = getPaint (); // mPaint. setTextSize (56.0f); mPaint. setColor (Color. parseColor ("# cccccccc"); FontMetrics fm = mPaint. getFontMetrics (); fFontHeight = (float) Math. ceil (fm. descent-fm. ascent); drawables = getCompoundDrawables () ;}@ Overrideprotected void onDraw (Canvas canvas) {if (drawables! = Null) {Drawable drawable = drawables [1]; // topif (drawable! = Null) {final float textY = getY () + drawable. getIntrinsicHeight () + fFontHeight-5; canvas. drawText (getText (). toString (), 0, textY, mPaint); canvas. clipRect (drawable. getBounds (); canvas. drawBitmap (getBitmap (drawable), getLeft () + leftMargin, getTop (), mPaint); drawable. draw (canvas); canvas. save () ;}} super. onDraw (canvas);} private final static Bitmap getBitmap (Drawable drawable) {BitmapDrawable bd = (BitmapDrawable) drawable; return bd. getBitmap ();}}
<com.bluetooth.light.widget.DrawableTopLeftTextView android:id="@+id/signal_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_marginRight="10dp" android:drawableTop="@drawable/signal_logo" android:text="@string/signal" android:textColor="#cccccccc" android:textSize="24sp" />
In android, how does one display text in TextView with a smiley face icon?
TextView has the attributes drawableTop drawableBottom drawableLeft drawableRight.
How can I make the text in TextView look neat?
RelativeLayout (relative layout) android: layout_below: android: layout_top: placed on the top of an element android: layout_toLeftOf: placed on the left of the specified component android: layout_toRightOf: placed on the right of the specified component android: layout_alignParentTop: align with the parent component android: parent: align with the parent component android: layout_alignParentLeft: Align left with the parent component android: layout_alignLeft: Align left with the specified component android: layout_alignRight: align right with the specified component android: layout_alignBottom: align with the specified component android: layout_alignBaseline: align with the specified component baseline