2012-05-23 43 views
6

Tôi có một TextView và một bitmap có thể được lặp lại chỉ theo chiều ngang. Tôi muốn thiết lập nền của textview của tôi và lặp lại nó chỉ trên trục X. Sau khi nhìn xung quanh tôi thấy rằng bạn chỉ có thể làm điều đó thông qua mã và không phải trong XML. Tôi đã tạo một BitmapDrawable bằng cách sử dụng :,Android BitmapDrawable setTileModeX không hoạt động trên TextView

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

Tuy nhiên, ngay cả với cách này cũng có thể vẽ được trên trục Y. Đây là trong Honeycomb 3.2.

Ai đó có thể làm sáng tỏ điều này, có thể cung cấp ví dụ về hoạt động này?

+0

Bạn có thể tạo một drawable bitmap đó đề cập đến hình ảnh thực tế của bạn và thiết lập các thuộc tính TILEMODE. –

+0

Tôi không hiểu ý bạn là gì ... – dnkoutso

Trả lời

1

// thử này

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); 

// thử này quá

bg.setTileModeX(1); //Repeats the bitmap in both direction. 
bg.setTileModeY(-1);//Do not tile the bitmap. This is the default value. 
Các vấn đề liên quan