2011-02-18 4 views
10

세로 줄무늬의 일반 그리드 인보기 배경을 설정하고 싶습니다. 줄무늬는 두 가지 색상으로 번갈아 표시됩니다. 예를 들어 한 행에 6 픽셀의 연한 회색과 2 픽셀의 진회색이 반복되어 폭을 채우도록 반복 될 수 있습니다.XML의 세로 줄무늬 배경?

비트 맵을 사용하면 또는 코드로 생성). 예를 들면 다음과 같습니다.

ShapeDrawable bg = new ShapeDrawable(new RectShape()); 
int[] pixels = new int[] { 0xFFCCCCCC, 0xFFCCCCCC, 0xFFCCCCCC, 
    0xFFCCCCCC, 0xFFCCCCCC, 0xFFCCCCCC, 0xFF999999, 0xFF999999}; 
Bitmap bm = Bitmap.createBitmap(pixels, 8, 1, Bitmap.Config.ARGB_8888); 
Shader shader = new BitmapShader(bm, 
    Shader.TileMode.REPEAT, Shader.TileMode.REPEAT); 
bg.getPaint().setShader(shader); 
view.setBackgroundDrawable(bg); 

비트 맵 리소스를 사용하지 않고 XML 드로어 블을 처리 할 수있는 방법이 있습니까?

+0

감사의 샘플을주는

뿐만 아니라 더 드로어 블에 적용 타일 모드를보고 내가 사랑하는 것

, +1. XML에서이 작업을 수행하는 데 어려움을 겪었으며 셰이더 접근 방식을 알지 못했습니다. –

답변

7

불행하지만 대답은 '아니오'입니다.

필요한 세 가지 작업 중 코드없이 두 가지 작업 만 수행 할 수 있습니다. 줄무늬 패턴의 기본 부분을 <layer-list> (두 개 이상은 <shape> 개)으로 만들 수 있습니다. <bitmap> XML 드로어 블을 사용하여 반복 타일 패턴을 생성 할 수도 있습니다. 트릭은 필요한 중간 단계입니다. <bitmap>은 소스 값 (이미지 만)으로 다른 드로어 블을 허용하지 않으므로 작은 코드를 사용하지 않고 두 코드를 연결하여 비트 맵을 작성하지 않아도됩니다 (작성한 것과 같은) . 나에게 코드에서 완전히 패턴을 생성 :)이`BitmapShader` 조각에 대한

+0

의견에 감사드립니다. 그것은 나의 인상이었다. 너무 나빴어. :( –

관련 문제