gpt4 book ai didi

Android,从主要 Activity 中绘制

转载 作者:太空狗 更新时间:2023-10-29 12:53:52 24 4
gpt4 key购买 nike

我在主 Activity 中创建了一个名为 DrawView 的自定义 View 。我在 DrawView 类中实现了 onDraw() 方法,它最初绘制了一个圆。然后我添加了一个触摸监听器,这样当用户单击时,它就会绘制一个正方形。我负责用户点击并绘制正方形的部分。我不确定该怎么做。

public class TestActivity extends Activity {
DrawView drawing;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

ViewGroup myLayout = (ViewGroup) findViewById(R.id.mainLayout);

drawing = new DrawView(this);
myLayout.addView(drawing);

drawing.setOnTouchListener(new View.OnTouchListener() {

public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
// draw a square
}
return true;
}
});
}

private class DrawView extends View {

public DrawView(Context context) {
super(context);
}

protected void onDraw(Canvas canvas) {
Paint myPaint = new Paint();
myPaint.setColor(Color.BLACK);
// draw a circle
}
}
}

非常感谢您的帮助。

最佳答案

这里是当用户向下、移动和向上触发触摸监听器时绘制矩形的简单 fragment ,只需在 DrawView 类中覆盖而不是通过 setOnTouchListener()

在 DrawView 类中定义 Rect r = new Rect() 然后在 DrawView 类中实现此代码

public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
sx = event.getX();
sy = event.getY();
r.set(sx,sy,sx,sy);
}else if(event.getAction==MotionEvent.ACTION_UP){
r.set(sx,sy,event.getX(),event.getY());
}else if(event.getAction==MotionEvent.ACTION_MOVE){
r.set(sx,sy,event.getX(),event.getY());
}
invalidate();
return true;

这里是onDraw()

public void onDraw(Canvas canvas){
super.onDraw(canvas);
canvas.drawRect(r, new Paint());
}

关于Android,从主要 Activity 中绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8987632/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com