更改切换按钮的形状

时间:2015-08-05 23:27:41

标签: android xml button

我想将切换按钮的形状更改为与常规按钮完全相同,这意味着确切的形状和阴影,我不希望它看起来"按下"当它切换为ON时,我不使用常规按钮的原因是因为我需要切换功能而且我更难以将切换功能实现为常规按钮,而不是将切换按钮的外观更改为常规按钮,我正在制作mi第一个Android应用程序,所以回应就像你和新手说话一样(因为这就是我的意思)。

3 个答案:

答案 0 :(得分:1)

如果我理解你的需要不是出于用户界面的原因,而是出于其他目的;所以我认为最好的方法是使用常规按钮并实现onClickListener;有点谎言:

    ok.setTag("likeatoggle");
    boolean pressed = context.getSharedPreferences("MY_SHARED_PREF_NAME", Context.MODE_PRIVATE).getBoolean(ok.getTag() + "_pressed", false);
    ok.setBackgroundColor(pressed ? Color.BLUE : Color.RED);
    ok.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View v)
        {
            // just an example
            boolean pressed = context.getSharedPreferences("MY_SHARED_PREF_NAME", Context.MODE_PRIVATE).getBoolean(v.getTag() + "_pressed", false);
            Toast.makeText(context, "ouch " + v.getTag() + ": " + (!pressed), Toast.LENGTH_SHORT).show();
            v.setBackgroundColor(pressed ? Color.BLUE : Color.RED);
            context.getSharedPreferences("MY_SHARED_PREF_NAME", Context.MODE_PRIVATE).edit().putBoolean(v.getTag() + "_pressed", !pressed).commit();
        }
    });

修改:我使用了上面的代码,我可以更改按钮上的颜色

答案 1 :(得分:1)

您可以创建一个新的xml可绘制资源,如下所示:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
     <item android:state_checked=true
           android:drawable="@drawable/something1" />

     <item android:state_checked=false
           android:drawable="@drawable/something2" />
</selector>

(something1和something2是可绘制资源,基本上是由您创建的自定义按钮形状)并更改Toggle背景属性。准备你的Photoshop技能人员,如果你试试这个就需要它们!

答案 2 :(得分:0)

我找到了最简单的解决方案,只需在布局中抛出一些常规按钮,然后转到xml版本的布局,并更改按钮的定义