在Android中实现“拇指按下/竖起大拇指”切换按钮的方法

时间:2012-03-23 01:31:01

标签: android android-layout

我有一个要求,我需要实现竖起大拇指向下类型的切换按钮,我在这里努力去理解如何实现这一目标。 我不确定我是否可以创建一个样式,这个样式会改变图像的背景,这取决于按钮的按下方式....

任何人都可以分享一些想法吗?

此致 菲利普

更新

嘿伙计们 按照这里给出的想法,我实现了以下代码:

tglBtnThumbsUp.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            tglBtnThumbsDown.setChecked(false);
            tglBtnThumbsUp.setChecked(true);

        }
    });
    tglBtnThumbsDown.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            tglBtnThumbsUp.setChecked(false);
            tglBtnThumbsDown.setChecked(true);

        }
    });

它按照我想要的方式工作。 现在,试图在互联网上找到一个“竖起大拇指”和“竖起大拇指”的PSD文件,这样我就可以改变背景,因为我是一个非常非常糟糕的设计师,不能自己做

感谢大家!

2 个答案:

答案 0 :(得分:2)

我使用刷新按钮和进度条执行类似操作。在xml中,我看到了刷新按钮,进度条可见性已消失

    <ImageView
        xmlns:android="http://schemas.android.com/apk/res/android" 
        android:id="@+id/ivSync"
        android:clickable="true" 
        android:src="@drawable/ic_menu_refresh_dark" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
    />

    <ProgressBar
        android:id="@+id/pbSync"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:visibility="gone"
        android:clickable="true"
        />

然后,在代码中,我为每个创建OnClickListner事件并切换每个控件的可见性:

//Setup control listeners for Click events.
pbProgress.setOnClickListener(pbProgressBarClick);
ivSync.setOnClickListener(ivSyncClick);

private OnClickListener pbProgressBarClick = new OnClickListener(){

    @Override
    public void onClick(View v) {
        //Make the Sync image visible.
        ivSync.setVisibility(View.VISIBLE);

        //Some other code here...

        //Make the ProgressBar invisible.
        pbProgress.setVisibility(View.GONE);    
    }

};

private OnClickListener ivSyncClick = new OnClickListener(){
    @Override
    public void onClick(View v) {
        //Make the Sync image invisible.
        ivSync.setVisibility(View.GONE);

        //Some other code here...

        //Make the ProgressBar visible.         
        pbProgress.setVisibility(View.VISIBLE);
    }
};
希望它有所帮助!

答案 1 :(得分:2)

你的意思是并排两个切换按钮,用户打开其中一个,或者你是指一个向上或向下切换的按钮?

对于一个togglebutton,使用XML中的选择器,拇指和拇指的图片分别为state_checked =“true”或false。否则将两个不同的切换按钮并排放置,并使用OnCheckedChangeListener一次点亮或不点亮。

希望有道理。