1
에서 사각형의 색상 변경은 내가 LinearLayout
하고 난 사용자 지정보기가 : 내가 가지고있는 MainActiviy에서안드로이드 : 런타임
public class myView extends View
{
Rect rects = new Rect(30,30,80,80);
Canvas myCanvas;
@Override
public void onDraw(Canvas canvas)
{
myCanvas = canvas;
paint.setColor(Color.RED);
canvas.drawRect(rects, paint);
}
void changeColor()
{
paint.setColor(Color.BLUE);
myCanvas.drawRect(rects, paint);
myCanvas.invalidate();
}
}
: 나는를 변경하려면
LinearLayout lv = (LinearLayout) View.inflate(this, R.layout.activity_main, null);
drawView = new myView(this);
lv.addView(drawView);
setContentView(lv);
Button button3 = (Button) findViewById(R.id.button3);
button3.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v) {
drawView.changeColor();
}
});
버튼을 클릭 한 후을 changeColor를 호출 해 구형의 색. 그러나 다른 곳에있는 새로운 직사각형이 만들어졌습니다! 저를 도와주세요?
감사를 무효로합니다. 처음에 여러 도형을 만들고 싶다면 클릭하여 색상을 변경하고 처음으로 그릴 때가 있습니까? OnDraw에 모든 것을 넣으면 무효화 될 때마다 모두 다시 그려지는 반면, 색상 변경이 필요할 수 있습니다. – Sara
글쎄, 시나리오를 구현하는 몇 가지 요인에 따라 달라집니다,하지만 모양의 수가 너무 크지 않다면, 당신은 색상과 rect의 배열로 잘해야 할 것 같아요. 0부터 rects.length까지 반복하고 각 반복마다 setColor 및 drawRect를 호출합니다. – ssantos
하지만 큰 경우 좋은 방법이 아닙니다. 옳은? 캔버스 drawRect (rects, paint)를 호출하는 것은 어떨까요? 무효를 부르지 않고? – Sara