2016-12-25 3 views
0

안드로이드 캔버스 사용법에 대한 자습서가 거의 없습니다. 그러나 공식 문서를보고 나서이 코드를 생성 할 수있었습니다. 나는 단순히 녹색 직사각형을 그리기를 원한다.안드로이드 캔버스 그림이 아닙니다

public class LevelActivity extends AppCompatActivity { 

    Object shape; 
    Target target; 

    Rect r; 
    Paint paint; 

    Bitmap b = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888); 
    Canvas c = new Canvas(b); 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_level); 

     paint = new Paint(); 
     paint.setColor(Color.GREEN); 
     paint.setStyle(Paint.Style.FILL); 

     r = new Rect(); 
     r.set(0,0,c.getWidth(),c.getHeight()/2); 

     c.drawRect(r,paint); 

     shape = new Shape(30,10); //Object setup 
     //shape.pick(); //Pick random point for target 
    } 

} 

나는 그리기 위해 customView를 사용하고 싶지 않다. 순수한 안드로이드 캔버스를 사용하고 싶다. 코드를 실행할 때 오류 또는 경고가 표시되지 않습니다.

도움을 주시면 대단히 감사하겠습니다.

-Kelton

+0

당신은보기에 캔버스를 그릴 필요가있다. –

+0

@MatthewHooker 이것이 뷰를 구현하는 새로운 클래스를 만들어야한다는 것을 의미합니까? 아니면 내가 어떻게 할 것인가? –

+0

findViewById가보기를 가져옵니다. https://developer.android.com/reference/android/support/v7/app/AppCompatActivity.html –

답변

1

글쎄, 당신은 기본 비트 맵 b와 캔버스 c 있습니다. 이제 캔버스에서 그릴 내용은 c 비트 맵 b에 실제로 그려집니다. 그리고 위의 코드에서 드로잉 부분을 완성했습니다. 비트 맵 b에는 그려진 사각형이 있습니다. 그러나 이제 ImageView와 같이이 비트 맵 b을 어떤보기에서로드해야한다는 것을 확인하십시오. activity_level 레이아웃에 ImageView을 넣은 다음 ImageView.setImageBitmap(b)을 사용하여 비트 맵을보기에로드 할 수 있습니다.

0

당신은 끝에 다음 두 줄을 추가해야합니다

ImageView iv= (ImageView) findViewById(R.id.imageview_where_i_will_put_my_awesome_green_rectangle); 
     iv.setImageBitmap(b); 
관련 문제