2011-02-23 8 views
3

20x20 배경을 사용자 정의보기로 바둑판 식으로 배열하려하지만 어떤 이유로 든 할 수 없습니다.Android : BitmapDrawable.Draw (Canvas) 작동하지 않는 것 같습니다.

BitmapDrawable background; 
    background = new BitmapDrawable(BitmapFactory.decodeResource(getResources(), R.drawable.back)); 
    background.setTileModeXY(Shader.TileMode.REPEAT, Shader.TileMode.REPEAT); 
    background.draw(canvas); 

왜 작동하지 않는 사람이 있습니까?

답변

2

귀하의 drawable 범위를 잊어 버렸습니다. drawable.setBounds()를 호출하기 전에 적어도 한 번 호출해야합니다.

+0

이미지가 화면 전체에 타일로 표시되도록하려면 어떤 경계를 설정해야합니까? (0, 0, 20, 20)으로 설정하면 나에게도 동일한 문제가 발생하지만 나타나지 않습니다. – Peter

6

경계를 타일 크기로 설정하지 마십시오. 타일링 할 전체 영역을 설정하십시오. 귀하의 경우 :

background.setBounds(0, 0, myView.getWidth(), myView.getHeight()); 
1

다음 코드

//background 
    Bitmap _back_bmp = BitmapFactory.decodeResource(context.getResources(), R.drawable.background); 
    BitmapDrawable backTiled = new BitmapDrawable(_back_bmp); 
    backTiled.setTileModeXY(Shader.TileMode.REPEAT, Shader.TileMode.REPEAT); 
    backTiled.setBounds(0, 0, this.getWidth(), this.getHeight()); 
    this.back_bmp = backTiled.getTileModeX(); 
    this.setBackgroundDrawable(backTiled); 

와 함께이 문제를 해결 한 것 같다하지만 지금은 내 자신의 문제가있다. 캔버스에 그릴 수있는 것은 무엇입니까?

관련 문제