2012-03-23 53 views
2

我有一個要求,我需要實現拇指向上,拇指向下的切換按鈕類型,我在這裏掙扎以感知如何完成此操作。 我不知道我是否可以創建一種風格,這種風格會有一個地方,它會改變圖像的背景,具體取決於按鈕的按壓方式......在Android中實現「拇指向下/豎起大拇指」切換按鈕的方式

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

問候, 費利佩

UPDATE:

嗨 繼這裏給出的思路,我實現了下面的代碼:

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文件,所以我可以改變的背景下,因爲我是一個非常非常非常糟糕的設計師,不能做自己

感謝大家!

+0

您可以嘗試擴展Button並將圖片放在拇指上或下,然後讓它們中的兩個用附加的OnSharedPreferenceChangeListener修改SharedPreference。共享偏好偵聽器將修改背景,按鈕偵聽器將存儲爲共享首選項並啓用/禁用對方。 – gobernador 2012-03-23 01:51:02

回答

2

你的意思是兩個切換按鈕並排在哪裏用戶打開其中一個,或者你的意思是一個切換上升或下降?

對於只有一個togglebutton,在XML中使用一個選擇器,將拇指和拇指的圖片分別作爲state_checked =「true」或false。否則,並排放置兩個不同的切換按鈕,並使用OnCheckedChangeListener一次點亮或不點亮其中的一個。

希望有道理。

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); 
    } 
}; 

希望幫助!