2012-05-23 21 views
6

TextView ve yalnızca yatay olarak yinelenebilen bir bitmapim var. Metin manzaramın arka planını ayarlamak ve sadece X ekseninde tekrarlamak istiyorum. Etrafa baktıktan sonra bunu sadece XML üzerinden değil, kod aracılığıyla yapabileceğinizi gördüm. Hatta çekilebilir da Y ekseninde tekrarlanır bu yolla, Ancak Android BitmapDrawable setTileModeX, TextView üzerinde çalışıyor

BitmapDrawable bg = new BitmapDrawable(r, BitmapFactory.decodeResource(r, R.drawable.my_drawable)); 
bg.setTileModeX(Shader.TileMode.REPEAT); 
setBackgroundDrawable(bg); 

:, kullanılarak BitmapDrawable yarattı. Bu Petek 3.2'de.

Bu konuda biraz ışık tutabilir, belki de çalışmasına örnek verebilir misiniz?

+0

Sen gerçek resme yönelik ve TileMOde niteliğini belirleyen bir bitmap çekilebilir oluşturabilir deneyin deneyin. –

+0

Ne demek istediğini anlamadım ... – dnkoutso

cevap

1

// bu

BitmapDrawable bg = new BitmapDrawable(r, BitmapFactory.decodeResource(r,R.drawable.my_drawable)); 

     int width = view.getWidth(); 
     int intrinsicHeight = bd.getIntrinsicHeight(); 
     Rect bounds = new Rect(0,0,width,intrinsicHeight); 
     bg.setTileModeX(Shader.TileMode.REPEAT); 
     bg.setBounds(bounds); 
     Bitmap bitmap = Bitmap.createBitmap(bounds.width(), bounds.height(), bg.getBitmap().getConfig()); 
     Canvas canvas = new Canvas(bitmap); 
     bg.draw(canvas); 
     BitmapDrawable bitmapDrawable = new BitmapDrawable(bitmap); 
yourTxtView.setBackgroundDrawable(bg); 

// bu da

bg.setTileModeX(1); //Repeats the bitmap in both direction. 
bg.setTileModeY(-1);//Do not tile the bitmap. This is the default value.