0

这可能已经被问过了,但我找不到。

所以我在android中制作了一个带有普通图像和“按下”图像的自定义按钮。唯一的问题是,当我按下手机上的按钮时,在按下时我将手指拖离图像并释放,按钮图像保持按下状态,而不是恢复到正常的未按下图像。默认的 android 按钮已格式化,因此当您执行此“拖动”事件时,只要您的手指离开按钮的尺寸,按钮就会恢复正常。

主.java:

but1.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                but1.setBackgroundResource(R.drawable.bluewhiteplainpressed);
                return false;
            }
        });

        but1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(!but1.isActivated()){
                    but1.setBackgroundResource(R.drawable.bluewhiteplain);

menu.xml 中的按钮代码:

<Button
            android:id="@+id/button1pos"
            android:layout_width="0dip"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="@drawable/bluewhiteplain"
            />
4

2 回答 2

0

删除 OnTouchListener 并在背景按钮中放置一个可绘制选择器。

Android:如何制作一个可绘制的选择器

于 2013-07-22T13:00:20.920 回答
0

您可以为此制作自定义可绘制选择器。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="false" 
    android:drawable="@drawable/cell_top_selected" />
    <item android:drawable="@drawable/cell_top" />
</selector>
于 2016-01-12T21:44:58.977 回答