Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 如何以编程方式更改ImageButton的样式大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在这个特定的Activity中,用户应该选择在摇滚剪刀游戏中选择的玩家1和玩家2的析构函数.

我尝试了几种方法:第一种方法是简单地让所选的ImageButton单击,但我没有找到任何解决方案来实现这一点.

第二个是将选择的ImageButton设置为不可点击并更改其图像,如下图所示.在那里,玩家1选择了“摇滚”而玩家2没有选择.如您所见,一旦我更改了ImageButton的图像,边框就会消失.

我改变了像这样的按钮的状态

public void onClickRock1(View v){
    choosenDestructor1 = 1;

    buttonRock1.setImageresource(R.drawable.rock_clicked);
    buttonRock1.setBACkgroundColor(getresources().getColor(R.color.button_BACkground_stay_clicked));
    buttonRock1.setClickable(false);

    buttonPaper1.setImageresource(R.drawable.paper);
    buttonPaper1.setBACkgroundColor(getresources().getColor(R.color.button_BACkground));
    buttonPaper1.setClickable(true);

    buttonScissors1.setImageresource(R.drawable.scissors);
    buttonScissors1.setBACkgroundColor(getresources().getColor(R.color.button_BACkground));
    buttonScissors1.setClickable(true);
    }

对于所有其他5个按钮,与此方法类似.现在,我认为用简单的Image覆盖ImageButton的样式会使我的自定义ImageButton样式的边框消失,但这只是猜测.

我写了第二个自定义ImageButton样式,具有不同的背景颜色和相同的边框,但我无法弄清楚如何从代码中在ImageButton上设置该样式.

所以我的问题是,哪种方法最聪明才能解决这个问题(我认为是第三种方法,但也许还有另一种方法),如果是第三种方法,那么如何从代码中设置ImageButton的样式.

编辑:

与rgrocha的回答类似,我编辑了我的选择器(已经集成在custom_imagebutton.xml中),如下所示

<?xml version="1.0" encoding="utf-8"?>
<SELEctor xmlns:android="http://scheR_763_11845@as.android.com/apk/res/android" >
    <item android:state_pressed="true" android:drawable="@drawable/rock">
        <shape>
            <solid
                android:color="@color/button_BACkground" />
            <stroke
                android:width="2dp"
                android:color="#FFF716" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />

        </shape>
    </item>
    <item android:state_SELEcted="true" android:drawable="@drawable/rock_clicked">
        <shape>
            <solid
                android:color="@color/button_BACkground_stay_clicked" />
            <stroke
                android:width="2dp"
                android:color="#FFF716" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>
    <item android:drawable="@drawable/rock">        
        <shape>
            <solid
                android:color="@color/button_BACkground" />
            <stroke
                android:width="1dp"
                android:color="#FFFFFF" />
            <corners
                android:radius="0dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>  
</SELEctor>

和onClickRock1方法一样

public void onClickRock1(View v){
    choosenDestructor1 = 1;
    buttonRock1.setSELEcted(true);
    buttonPaper1.setSELEcted(false);
    buttonScissors1.setSELEcted(false);
}

像这样解决它会导致为每个ImageButton(岩石,纸张,剪刀)制作custom_imagebutton.xml,以下是以下问题:
1.边界不可见(重要的是,因为我希望有这些边界)
2.图像不再缩放(这没关系,因为我喜欢它更像这样)

所以基本上,它看起来像我上面发布的图像,除了图像由于没有缩放而略大一些(在layout.xml中,我设置scaleType =“fitCenter”)

解决方法

您可以为要应用的每个状态创建一个可绘制选择器,并将其设置为主要图像或背景,您可以选择更适合您需要的状态.

在此选择器中,您可以制作边框,颜色,图像,以及任何您想要更改的内容.

选择器看起来像:

<item android:state_pressed="true">
    <shape android:shape="rectangle" >

        <solid android:color="@color/button_highlight" />
        <corners android:radius="5dp" />

    </shape>
    </item>
<item android:state_SELEcted="true">
    <shape android:shape="rectangle" >

        <solid android:color="@color/menu_bg_SELEcted" />
        <corners android:radius="5dp" />

    </shape>
</item>

有关完整的drawables文档,请参阅http://developer.android.com/guide/topics/resources/drawable-resource.html.对于您的情况,请参阅“状态选择器”.

您甚至可以使用setSELEcted(),setEnabled(()等以编程方式更改按钮的状态.

大佬总结

以上是大佬教程为你收集整理的android – 如何以编程方式更改ImageButton的样式全部内容,希望文章能够帮你解决android – 如何以编程方式更改ImageButton的样式所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。