我正在制作一个简单的鼓组应用程序,用户可以点击按钮发出相应的声音,并在画布上的随机位置绘制一个圆圈。对于画布,我创建了一个名为CanvasView的自定义视图,然后将该CanvasView实现到MainActivity中,以便我每次通过MainActivity中的OnClickListener点击按钮时都能控制该视图。
然而,我不知道如何使用OnClickListener实际控制(在CanvasView上绘制圆圈)。我需要在这部分得到帮助。
这是我MainActivity类的代码:
这是我为CanvasView编写的代码。
这是我的MainActivity的布局XML:
然而,我不知道如何使用OnClickListener实际控制(在CanvasView上绘制圆圈)。我需要在这部分得到帮助。
这是我MainActivity类的代码:
public class MainActivity extends Activity {
//setup variables for soundpool
.
.
.
//implements CanvasView
CanvasView mCanvasView;
//set up soundID for each sound
.
.
.
//setup buttons
Button mKick;
.
.
.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//set up soundpools
.
.
.
//example, the kick drum button
//kick drum
mKick = (Button) findViewById(R.id.kick);
mKick.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
soundPool.play(kick, leftVolume, rightVolume, priority, no_loop, normal_playback_rate);
// mCanvasView.draw(CanvasView.mCanvas);
}
});
这是我为CanvasView编写的代码。
public class CanvasView extends View {
public Paint mPaint;
public static Canvas mCanvas;
//constructor
public CanvasView(Context context, AttributeSet attrs) {
super(context, attrs);
mPaint = new Paint();
}
//what I want to draw is here
protected void onDraw(Canvas canvas) {
mCanvas = canvas;
super.onDraw(mCanvas);
canvas.drawColor(Color.GRAY);
mPaint.setColor(Color.BLUE);
mPaint.setStyle(Style.STROKE);
mPaint.setAntiAlias(true);
canvas.drawCircle(30, 30, radius, mPaint);
这是我的MainActivity的布局XML:
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/GridLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:columnCount="3"
android:orientation="horizontal"
android:rowCount="5"
tools:context=".GridXMLActivity" >
<Button
android:id="@+id/kick"
android:layout_width="78dp"
android:layout_height="wrap_content"
android:layout_column="1"
android:layout_gravity="center_horizontal|fill_vertical"
android:layout_row="3"
android:text="Kick" />
<com.example.virtualdrumset.CanvasView
android:id="@+id/canvasView1"
android:layout_width="143dp"
android:layout_height="169dp"
android:layout_column="1"
android:layout_gravity="left|top"
android:layout_row="0" />
非常抱歉给您带来任何不便或错误,这是我第一次提问。
在IT技术方面,您需要注意的是保持良好的代码规范和清晰的注释。此外,及时更新软件和应用程序可以确保您的设备始终保持最新版本并且安全受到保护。