こんにちは、マルチタッチ サポートを使用するアプリケーションを作成したいと考えています。
マルチタッチの場合、このコードを使用しています
これで、コードが以下のようなorg.metalev.multitouch.photosortr.PhotoSortrActivityアクティビティがあることがわかります
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setTitle(R.string.instructions);
photoSorter = new PhotoSortrView(this);
setContentView(photoSorter);
}
それはうまくいきます
しかし、これの代わりに、このビューを自分のビューに追加したい場合は、以下のようにコードの上に書きます...
activity_main.xml という名前の XML ファイルを 1 つ作成しました。
<org.metalev.multitouch.photosortr.PhotoSortrView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</org.metalev.multitouch.photosortr.PhotoSortrView>
そしてonCreateメソッドで私は以下のように変更しました
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setTitle(R.string.instructions);
photoSorter = new PhotoSortrView(this);
setContentView(R.layout.activity_main);
}
このようにすると、以下のエラーが表示されます
10-30 12:15:29.319: E/AndroidRuntime(6652): java.lang.NullPointerException
10-30 12:15:29.319: E/AndroidRuntime(6652): at org.metalev.multitouch.photosortr.PhotoSortrView$Img.draw(PhotoSortrView.java:274)
10-30 12:15:29.319: E/AndroidRuntime(6652): at org.metalev.multitouch.photosortr.PhotoSortrView.onDraw(PhotoSortrView.java:86)
10-30 12:15:29.319: E/AndroidRuntime(6652): at android.view.View.draw(View.java:6914)
10-30 12:15:29.319: E/AndroidRuntime(6652): at android.view.ViewGroup.drawChild(ViewGroup.java:1646)
10-30 12:15:29.319: E/AndroidRuntime(6652): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
10-30 12:15:29.319: E/AndroidRuntime(6652): at android.view.View.draw(View.java:6917)
10-30 12:15:29.319: E/AndroidRuntime(6652): at android.widget.FrameLayout.draw(FrameLayout.java:357)
10-30 12:15:29.319: E/AndroidRuntime(6652): at android.view.ViewGroup.drawChild(ViewGroup.java:1646)
10-30 12:15:29.319: E/AndroidRuntime(6652): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
10-30 12:15:29.319: E/AndroidRuntime(6652): at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
PhotoSortrView.java ファイルでは、コードは以下のようになり、このエラーが発生します
public void draw(Canvas canvas) {
canvas.save();
float dx = (maxX + minX) / 2;
float dy = (maxY + minY) / 2;
---->drawable.setBounds((int) minX, (int) minY, (int) maxX, (int) maxY); // HERE getting drawable == NULL
canvas.translate(dx, dy);
canvas.rotate(angle * 180.0f / (float) Math.PI);
canvas.translate(-dx, -dy);
drawable.draw(canvas);
canvas.restore();
}