我正在尝试构建一个钢琴应用程序,我已经通过这个链接
我能够创建绘制一系列黑白键的视图。我不知道如何水平滚动,因为我没有为视图使用任何 xml 文件。
这是我的 MainActivity 的代码:
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new MyTouch(this));
//setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
这是 MyTouch 的代码: 与上述链接中指定的代码相同。
public class MyTouch extends View {
public MyTouch(Context context) {
super(context);
}
Bitmap whiteKey, blackKey;
Paint paint = new Paint();
public void draw(Canvas canvas) {
if (whiteKey == null) {
whiteKey = BitmapFactory.decodeResource(getResources(), R.drawable.white);
}
if (blackKey == null) {
blackKey = BitmapFactory.decodeResource(getResources(), R.drawable.black);
}
int keys = 5;
// draw white keys
for (int i = 0; i < keys; i++) {
canvas.drawBitmap(whiteKey, i * whiteKey.getWidth(), 0, paint);
}
// draw black keys
for (int i = 0; i < keys; i++) {
if (i != 3 && i != 7) {
canvas.drawBitmap(blackKey, i * blackKey.getWidth()+blackKey.getWidth()*0.5f, 0, paint);
}
}
}
};
我搜索了谷歌,并尝试了很多例子,但没有一个对我有用。这个视图的更多内容包含一个绘制的画布,我对这个画布和绘图很陌生!