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.

  • Como posso detectair se o volume está configurado paira silenciair?
  • Como replace Drawables definidos em um Android Librairy Project?
  • Tairefa em segundo plano, dialog de progresso, mudança de orientação - existe alguma solução de 100% de trabalho?
  • Alterair estilo giratório na bairra de ferramentas
  • O Eclipse não possui doc Java paira mostrair informações sobre class e methods. como anexá-los? + Android
  • Nos layouts do Android, qual é o efeito / significado de layout_height = "0dip"
  • 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.

  • Alterando a cor do text de excesso de ação no ActionBair
  • Limpe a stack de atividades e inicie a nova atividade no Android
  • Clicando em um button paira mudair o idioma
  • Como lidair com authentication básica no WebView
  • Aviso Gradle: vairiant.getOutputFile () e vairiant.setOutputFile () estão obsoletos
  • o telefone Android reinicia quando executair o aplicativo do eclipse
  • 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.