Azulejo de mapa de bits de Android sólo en X
Quiero utilizar un mapa de bits que Tile en el Horizontal sólo, hay alguna manera de hacerlo, por lo que se expande sólo en X como repetir x en CSS. I que usa el código siguiente pero la teja del bitmap Horizontal y vertical:
<?xml version="1.0" encoding="utf-8"?> <bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/pinstripe" android:tileMode="repeat" android:gravity ="top|fill_horizontal" android:dither="true"/>
- Android Map Rendimiento pobre debido a muchas superposiciones?
- ¿Error de "Tratar de usar bitmap reciclado" de Android?
- Retraso en la demostración de uso de la imagen mapa de bits en android
- Java.lang.OutOfMemoryError Incluso en un bloque try-catch?
- Android - Mientras maneja una imagen es mejor almacenarla o usarla en memoria temporal?
- Cómo colocar la imagen de marca de pin en una imagen en android?
- Error de memoria al cargar mapas de bits
- Sustitución de un color en un mapa de bits
- Imagen de mapa de bits con esquinas redondeadas con trazo
- No se puede obtener la calidad de imagen completa de la cadena base64
- Fábrica de mapas de bits de Android sin memoria Segunda foto
- El mapa de bits de la vista no se muestra en Android
- Rotar un mapa de bits guardado en android
Aquí está la solución. Puede crear BitmapDrawable en código y especificar sólo el modo de mosaico X Android Tile Bitmap
Yo quería repetir el fondo sólo verticalmente, así, pero no pude encontrar ninguna solución decente por ahí, por lo que escribí este mi propio, espero que esto puede ayudar a alguien por ahí *
/** * Created by LeoLink on 2014-06-24. */ public class VerticallyRepeatedBackgroundLinearLayout extends LinearLayout { private int width, height; private RectF mRect; public VerticallyRepeatedBackgroundLinearLayout(Context context) { super(context); init(context); } public VerticallyRepeatedBackgroundLinearLayout(Context context, AttributeSet attrs) { super(context, attrs); init(context); } public VerticallyRepeatedBackgroundLinearLayout(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(context); } private void init(Context context) { setWillNotDraw(false); mRect = new RectF(); } @Override protected void onSizeChanged(int w, int h, int oldw, int oldh) { super.onSizeChanged(w, h, oldw, oldh); if (oldw == 0 && oldh == 0 && w > 0 && h > 0) { width = w; height = h; } } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); // clear the canvas canvas.drawColor(Color.WHITE); // draw Drawable bg = getBackground(); Bitmap bm = ((BitmapDrawable)bg).getBitmap(); int w = bg.getIntrinsicWidth(); int h = bg.getIntrinsicHeight(); int drawWidth = width; int drawHeight = drawWidth * h / w; int bottom = 0; while (height > bottom) { mRect.set(0, bottom, drawWidth, bottom + drawHeight); canvas.drawBitmap(bm, null, mRect, null); bottom += drawHeight; } } }
Y en su XML
<com.blah.blah.VerticallyRepeatedBackgroundLinearLayout android:id="@+id/collection_container" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/your_tile_bg"> </com.blah.blah.VerticallyRepeatedBackgroundLinearLayout>
- ViewPager primer fragmento mostrado siempre es incorrecto con FragmentStatePager
- Fragmento newInstance ¿por qué usar argumentos?