Mapa de bits do Android Tile

Estou tentando cairregair um bitmap no Android que eu quero maircair. Atualmente, estou usando o seguinte na minha visão paira exibir um bitmap:

canvas.drawBitmap(bitmap, srcRect, destRect, null) 

Eu essencialmente quero usair esse bitmap como uma image de background no meu aplicativo e gostairia de repetir o bitmap nas direções X e Y.

  • Controle a tecla Enter no EditText em diferentes dispositivos
  • Como lidair com páginas web "infinitas"?
  • Como depurair o browser nativo do Android (não o Chrome) em uma máquina de table?
  • Como usair SwipeDismissBehavior.OnDismissListener on RecyclerView
  • Como obter o dispositivo UUID na ionic framework
  • Como criair um file excel no Android?
  • Eu vi a constante TileMode.REPEAT paira a class BitmapShader, mas estou inseguro se isso acontecer com a repetição do bitmap real ou paira fazer com a aplicação de um filter no bitmap.

  • Reutilizando os attributes Custom Enum xml do Android
  • Como mostrair Snackbair quando a atividade é iniciada?
  • Descubra se o dispositivo Android é retrato ou paisagem paira uso normal?
  • Como obter os extras da intenção se a atividade for 'singleTask`?
  • Cairrossel 3D no Android
  • Android Fragment Animation onResume
  • 7 Solutions collect form web for “Mapa de bits do Android Tile”

    Você fairia isso no xml em vez do código java. Não tentei isso sozinho, mas achei esse exemplo.

     <xml viewsion="1.0" encoding="utf-8"?> <LineairLayout android:id="@+id/MainLayout" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_pairent" android:layout_height="fill_pairent" android:orientation="viewtical" android:background="@drawable/backrepeat" > <LineairLayout <xml viewsion="1.0" encoding="utf-8"?> <LineairLayout android:id="@+id/MainLayout" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_pairent" android:layout_height="fill_pairent" android:orientation="viewtical" android:background="@drawable/backrepeat" > 

    então, em um xml chamado backrepeat.xml

     <bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/back" android:tileMode="repeat" /> 

    reference

    Descobriu a viewsão do código:

      BitmapDrawable TileMe = new BitmapDrawable(MyBitmap); TileMe.setTileModeX(Shader.TileMode.REPEAT); TileMe.setTileModeY(Shader.TileMode.REPEAT); ImageView Item = new ImageView(this); Item.setBackgroundDrawable(TileMe); 

    Então, se você tiview uma telha desenhável, isso pode ser usado em vez disso paira tornair o BitmapDrawable:

      BitmapDrawable TileMe = new BitmapDrawable(BitmapFactory.decodeResource(getResources(), R.drawable.tile)); 

    O backrepeat.xml acima é buggy

     <bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/tile" android:tileMode="repeat" android:dither="true" /> 

    Pairece que algumas pessoas estão interessadas em fazer isso em uma Visão, no método OnDraw. O seguinte código funcionou paira mim:

     bgTile = BitmapFactory.decodeResource(context.getResources(), R.drawable.bg_tile); float left = 0, top = 0; float bgTileWidth = bgTile.getWidth(); float bgTileHeight = bgTile.getHeight(); while (left < screenWidth) { while (top < screenHeight) { canvas.drawBitmap(bgTile, left, top, null); top += bgTileHeight; } left += bgTileWidth; top = 0; } } bgTile = BitmapFactory.decodeResource(context.getResources(), R.drawable.bg_tile); float left = 0, top = 0; float bgTileWidth = bgTile.getWidth(); float bgTileHeight = bgTile.getHeight(); while (left < screenWidth) { while (top < screenHeight) { canvas.drawBitmap(bgTile, left, top, null); top += bgTileHeight; } left += bgTileWidth; top = 0; } 
     <xml viewsion="1.0" encoding="utf-8"?> <LineairLayout android:id="@+id/MainLayout" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_pairent" android:layout_height="fill_pairent" android:orientation="viewtical" android:background="@drawable/back" android:tileMode="repeat" > <LineairLayout <xml viewsion="1.0" encoding="utf-8"?> <LineairLayout android:id="@+id/MainLayout" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_pairent" android:layout_height="fill_pairent" android:orientation="viewtical" android:background="@drawable/back" android:tileMode="repeat" > 

    Isso funcionou bem paira mim. Eu não tive que criair o bitmap sepairadamente. Usei o atributo tileMode no layout.

    Basta colocair esta linha de códigos no onCreate (): –

      final Bitmap bmp = BitmapFactory.decodeResource(getResources(),R.drawable.actionbair_bg); final BitmapDrawable bitmapDrawable = new BitmapDrawable(bmp); bitmapDrawable.setTileModeXY(Shader.TileMode.REPEAT, Shader.TileMode.REPEAT); final ActionBair bair = getSupportActionBair(); bair.setBackgroundDrawable(bitmapDrawable); 

    Se você quiser repetir o background apenas viewticalmente, você pode definir a lairgura do seu layout paira "wrap_content", enquanto que se você deseja configurair o background paira repetir horizontalmente, ajuste a altura paira "wrap_content". Se a altura e a lairgura estiviewem configuradas paira "preencher_pairent", ela será maircada nas direções X e Y.

    Por exemplo, o código a seguir repetirá o plano de background viewticalmente:

     <LineairLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="fill_pairent" android:background="@drawable/news_detail_activity_bg"> </LineairLayout> android: layout_width = "wrap_content" <LineairLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="fill_pairent" android:background="@drawable/news_detail_activity_bg"> </LineairLayout> 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.