私は持っていToggleButton
ます。このボタンをクリックする場所を増やしたいです。などを追加するlayout_width
とlayout_height
、画像が悪く見えます。私も使用してみandroid:padding
ましたが、役に立ちませんでした。
ユーザーの利便性のために必要です。
私は持っていToggleButton
ます。このボタンをクリックする場所を増やしたいです。などを追加するlayout_width
とlayout_height
、画像が悪く見えます。私も使用してみandroid:padding
ましたが、役に立ちませんでした。
ユーザーの利便性のために必要です。
簡単な解決策:ボタンの画像がある場合は、その周りに透明な領域を作成します(つまり、タッチ領域用)。
灰色の領域を透明にして、タッチ領域を増やすことができます。
Android デベロッパー トレーニングのブログ投稿を設定して、タッチ エリアを増やすこともできますtouch delegates
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Get the parent view
View parentView = findViewById(R.id.parent_layout);
parentView.post(new Runnable() {
// Post in the parent's message queue to make sure the parent
// lays out its children before you call getHitRect()
@Override
public void run() {
// The bounds for the delegate view (an ImageButton
// in this example)
Rect delegateArea = new Rect();
ImageButton myButton = (ImageButton) findViewById(R.id.button);
myButton.setEnabled(true);
myButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(MainActivity.this,
"Touch occurred within ImageButton touch region.",
Toast.LENGTH_SHORT).show();
}
});
// The hit rectangle for the ImageButton
myButton.getHitRect(delegateArea);
// Extend the touch area of the ImageButton beyond its bounds
// on the right and bottom.
delegateArea.right += 100;
delegateArea.bottom += 100;
// Instantiate a TouchDelegate.
// "delegateArea" is the bounds in local coordinates of
// the containing view to be mapped to the delegate view.
// "myButton" is the child view that should receive motion
// events.
TouchDelegate touchDelegate = new TouchDelegate(delegateArea,
myButton);
// Sets the TouchDelegate on the parent view, such that touches
// within the touch delegate bounds are routed to the child.
if (View.class.isInstance(myButton.getParent())) {
((View) myButton.getParent()).setTouchDelegate(touchDelegate);
}
}
});
}
}
ammar26がTouchDelegate
あなたにコメントしたので、あなたのために使用してください。ToggleButton
または
これを試して:
LinearLayout
またはのような 1 つの親レイアウトを作成RelativeLayout
しToggleButton
ます。そして、その親レイアウトにマージンを入れます。
ここで、その親レイアウトをクリックすると、トグル ボタンのアクションが実行されます。
ビューのタッチ領域を増やすのに役立つことを願っています。
ハッピーコーディング。
タッチイベントをボタンに入れる代わりに、ボタンだけを含むレイアウトに入れて、必要に応じてレイアウトのサイズを修正します
の値を増やしますandroid:padding
:
<SeekBar android:id="@+id/seek" android:layout_width="0dip"
android:layout_height="wrap_content" android:layout_weight="1"
android:paddingTop="5dp" android:paddingBottom="5dp"
android:progressDrawable="@drawable/green_scrubber_progress_horizontal_holo_light"
android:thumb="@drawable/thumb" />
そのからあなたのmargin
(の場所)を取り、あなたの操作を実行しますpadding
Button
parent layout
Layout
mLayout.setonTouchListener(View.onTouchListener{
// here your working code
});