vertical tamaño publicitario plantilla para medidas imprimir hacer como banners java android xml textview banner

java - tamaño - plantilla para banner



Cómo hacer un banner o cinta con vista de texto o cualquier diseño (2)

Aquí hay una imagen simple con el letrero de texto en la esquina que escribí para mi propio uso. La misma estructura podría aplicarse a cualquier tipo de vista.

public class BannerImageView extends ImageView { private Paint mRibbonPaint; private Paint mTextPaint; private Paint mBoxPaint; private float mScale; private String mBannerText; public BannerImageView(Context context, AttributeSet attrs) { super(context, attrs); initPainters(attrs); } public BannerImageView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); initPainters(attrs); } private void initPainters(AttributeSet attrs) { TypedArray attributes = getContext().getTheme().obtainStyledAttributes(attrs, R.styleable.BannerImageView, defStyleAttr, 0); mBannerText = attributes.getString(R.styleable.BannerImageView_label); mBoxPaint = new Paint(); int white = ContextCompat.getColor(getContext(), R.color.white); mBoxPaint.setColor(white); mBoxPaint.setAlpha(156); mRibbonPaint = new Paint(); mRibbonPaint.setColor(ContextCompat.getColor(getContext(), R.color.banner_color)); mRibbonPaint.setAntiAlias(true); mRibbonPaint.setStyle(Paint.Style.STROKE); mRibbonPaint.setStrokeCap(Paint.Cap.BUTT); mScale = getResources().getDisplayMetrics().density; mRibbonPaint.setStrokeWidth(dp(16)); mTextPaint = new Paint(); mTextPaint.setColor(white); mTextPaint.setTextSize( dp(12) ); } /** * Converts dp to px * @param dp * @return */ private float dp(float dp) { return dp * mScale + 0.5f; } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); if ( !TextUtils.isEmpty(mBannerText) ) { canvas.drawRect(0, 0, getRight(), getBottom(), mBoxPaint); canvas.drawLine(-dp(16), dp(64), dp(64), -dp(16), mRibbonPaint); canvas.save(); canvas.rotate(-45, 0, 0); canvas.drawText(mBannerText, -dp(24), dp(38), mTextPaint); canvas.restore(); } }

A continuación, declare los atributos adicionales que desea usar en values ​​/ attrs.xml

<declare-styleable name="BannerImageView"> <attr name="label" format="string"/> </declare-styleable>

Por supuesto que usa en sus diseños XML como de costumbre, pero recuerda el espacio de nombres de la aplicación para los atributos personalizados

<com.my.package.BannerImageView android:layout_width="wrap_content" android:layout_height="wrap_content" app:label="Sold Out" />

Hola, quiero hacer un banner o cinta similar a la foto dada con una vista de texto o cualquier diseño en Android usando xml o java. No puedo descifrar cómo hacerlo.
Así que por favor ayúdenme es realmente necesario.


Para crear un banner así Debes hacer estas cosas

  1. Crear un dibujable de forma de un triángulo invertido en ángulo recto ajustando este código
  2. Establecer el fondo de la vista de texto a esta forma
  3. Cambie el textView Gravity a la alineación derecha / final