2013-07-11 2 views
0

나는 안드로이드 코딩으로 놀고있어 모든 화면 크기를 사용하는 캔버스를 만들었고 누군가가 캔버스를 터치 할 때마다이 캔버스에 터치 이벤트를 추가하는 데 도움이 필요합니다. 그 색깔. 2터치시 캔버스 색상 변경

편집은 내 레이아웃에 클릭 이벤트를 삽입 관리,하지만 난 그것의 처음에만 페인트 관리, 아주 잘 작동하지 않았다.

public class Modetwo_paint extends Activity implements OnClickListener { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     ... 
     ll = (LinearLayout) findViewById(R.id.layout_paint); 
     ll.setBackgroundColor(Color.BLACK);   

     ll.setOnClickListener(this);      
     drawView = new DrawViewSingle(this ,width, height, a[0], r[0], g[0], b[0]); //a, r, g, b, they are arrays of int 
     ll.addView(drawView);     

} 

public void onClick(View arg0) { 
     String s; 
     switch (arg0.getId()) { 
     case R.id.layout_paint: 
      clicks+=1; 
      if (clicks >= a.length) { 
       clicks = 0; 
      } 
      s = "Teste " + clicks; 
      Toast.makeText(getApplicationContext(), s , Toast.LENGTH_SHORT).show(); 

      drawView = new DrawViewSingle(this ,width, height, a[clicks], r[clicks], g[clicks], b[clicks]); 
      ll.addView(drawView); 
      break; 
     default: 
      break; 
     } 

    } 
} 

내 DrawViewSingle 클래스

public class DrawViewSingle extends View { 
    Paint paint = new Paint(); 
    int x; 
    int y; 
    int a; 
    int r; 
    int g; 
    int b; 
    int size; 


    public DrawViewSingle(Context context, int x, int y, int a , int r, int g, int b) { 
     super(context);   
     this.x = x; 
     this.y = y; 
     this.a = a; 
     this.r = r; 
     this.g = g; 
     this.b = b; 
    } 

    @Override 
    public void onDraw(Canvas canvas) {   
     paint.setStrokeWidth(0);   
     paint.setARGB(a, r, g, b); 
     canvas.drawRect(0, 0, x, y, paint); 
    } 
} 
+1

당신은 어떤 코드없이 –

+1

이 코드를 추가하십시오 drawview 클래스를 필요로하지는, 당신이 달성하려고하는 것과 같은 확실하지 오전, 어쩌면이 도움이 될 것입니다 : HTTP : // 개발자 .android.com/guide/topics/graphics/2d-graphics.html – buczek

+0

안녕하세요, 제 질문에 코드를 추가합니다. 누군가 도와 드릴 수 있습니까? –

답변

0

그래서, 내 친구가 내 캔버스 화면 크기를 사용하는 일단의 LinearLayout 배경을 변경하는 나에게 말했다. 지금은 더 이상

public void onClick(View arg0) { 
     switch (arg0.getId()) { 
     case R.id.layout_paint: 
      clicks+=1; 
      if (clicks >= a.length) { 
       clicks = 0; 
      }  
      ll.setBackgroundColor(Color.argb(a[clicks], r[clicks], g[clicks], b[clicks])); 

      break; 
     default: 
      break; 
     } 

    }