私はアンドロイドが初めてです。Android で独自のカスタム ボタンを作成したいです。カスタム ボタンを作成するために使用したメソッドは次のとおりです。1. ペイントで好きなように単純な画像を描画し、描画可能なリソースに移動してその画像を貼り付けます。そこから、これらの画像をボタンとして使用できます。私のイメージがこのようなものだとします。
この画像の残りの部分を緑色の透明を除いて作成し、緑色の領域のみをタッチできるようにしました。このため、このコードを使用しています。
Bitmap TheBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.green);
int eventPadTouch = event.getAction();
int iX = (int) event.getX();
int iY = (int) event.getY();
int[] location = new int[2];
v.getLocationOnScreen(location);
int viewX = location[0];
int viewY = location[1];
switch (eventPadTouch) {
case MotionEvent.ACTION_DOWN:
if (iX>=viewX & iY>=viewY & iX<=(viewX+TheBitmap.getWidth()) & iY<=(viewY+TheBitmap.getHeight())) {
if (TheBitmap.getPixel(iX,iY)!=0) {
Intent intent = new Intent(this, NewActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
showPressedState();
return false;
}
}
break;
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_CANCEL:
showNormalState();
break;
}
return true;
}
しかし、この画像をこのように作成すると 、画像の曲線部分の下が再びタッチ可能になるという問題に直面していますが、タッチ不可にしました。次の問題に移ると、この種のボタンを作成したい場合は 、すべての部分をボタンとして使用して、その上でさまざまなアクティビティを実行できるようにすることは可能ですか?
Android は LINEAR LAYOUT、RELATIVE LAYOUT、WEBVIEW などの限られたタイプのレイアウトしか提供しないため、これがすべて起こっていることがわかりました。それで、私がレイアウトの境界を与えることができるならば、私たち自身のレイアウト手段を定義する方法はありますか.