2014-04-07 45 views
1

我有一個按鈕和imageview的相關佈局。我面臨的問題是,我可以使按鈕可點擊,但圖像視圖旁邊沒有按鈕點擊時切換圖像。如何將它們連接起來以便在點擊按鈕時工作?這裏是我的代碼:如何讓我的imageview與按鈕一起點擊?

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 

    <Button 
     android:id="@+id/button_breakingviews" 
     android:layout_width="match_parent" 
     android:layout_height="@dimen/manage_news_btn_ht" 
     android:layout_marginLeft="2dp" 
     android:layout_marginRight="2dp" 
     android:background="@drawable/manage_market_category_btnbg" 
     android:gravity="left|center_vertical" 
     android:paddingLeft="40dp" 
     android:text="@string/button_breakingviews" 
     android:textColor="#cccccc" 
     android:textSize="@dimen/title" /> 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_centerVertical="true" 
     android:paddingLeft="10dp" 
     android:paddingRight="17.5dp" 
     android:paddingTop="0dp" 
     android:src="@drawable/arrow_expand_collapse" /> 

</RelativeLayout> 

這是arrow_expand_collapse代碼:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/tbl_icon_more_arrow_down" android:state_pressed="true"></item> 
    <item android:drawable="@drawable/tbl_icon_more_arrow_up"/> 
</selector> 

回答

0

刪除imageview的並且這樣做:

<RelativeLayout ...> 
<Button 
     android:id="@+id/button_breakingviews" 
     android:layout_width="match_parent" 
     android:layout_height="@dimen/manage_news_btn_ht" 
     android:layout_marginLeft="2dp" 
     android:layout_marginRight="2dp" 
     android:background="@drawable/manage_market_category_btnbg" 
     android:gravity="left|center_vertical" 
     android:paddingLeft="40dp" 
     android:drawerLeft = "@drawable/whateverimageforcheckbox" 
     android:drawablepadding ="10dp" 
     android:text="@string/button_breakingviews" 
     android:textColor="#cccccc" 
     android:textSize="@dimen/title" /> 
</RelativeLayout> 
+0

很好地工作 – bardu

0

添加一個ID,ImageView和onclicklistener像這樣的按鈕,

final someImageView = (ImageView) findViewById(R.id.someImageView) 
Button someButton = (Button) findViewById(R.id.button_breakingviews); 
someButton.setOnClickListener(new OnClickListener() { 
    int buttonposition = 0; 
    public void onClick(View v) { 
     if (buttonposition == 0) { 
      someImageView.setImageResource(R.drawable.image01); 
      buttonposition = 1; 
     } else if (buttonposition == 1) { 
      someImageView.setImageResource(R.drawable.image02); 
      buttonposition = 0; 
     } 
    } 
}); 

希望這幫助!

1

您應該具有可點擊的父佈局(RelativeLayout),然後添加xml屬性duplicateParentState以在其子視圖上覆制父狀態。然後您的imageView在點擊時將具有相同的父佈局狀態。您的代碼將是這樣的:

<RelativeLayout 
    android:clickable="true" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 

    <Button 
     android:id="@+id/button_breakingviews" 
     android:layout_width="match_parent" 
     android:layout_height="@dimen/manage_news_btn_ht" 
     android:layout_marginLeft="2dp" 
     android:layout_marginRight="2dp" 
     android:background="@drawable/manage_market_category_btnbg" 
     android:gravity="left|center_vertical" 
     android:paddingLeft="40dp" 
     strong textandroid:duplicateParentState="true" 
     android:text="@string/button_breakingviews" 
     android:textColor="#cccccc" 
     android:textSize="@dimen/title" /> 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_centerVertical="true" 
     android:paddingLeft="10dp" 
     android:paddingRight="17.5dp" 
     android:paddingTop="0dp" 
     android:duplicateParentState="true" 
     android:background="@drawable/arrow_expand_collapse" /> 

</RelativeLayout> 

PS:在你的ImageView,你應該選擇設置爲您的ImageView的背景,而不是作爲SRC。

編輯: 我已經創建了您的按鈕和imageview的一個demo application,它爲我工作。你可以嘗試,讓你有關於任何問題,我知道(注:我使用的顏色,而不是可繪,因爲我沒有你的繪圖資源文件;))

注意:你可以看到這個tutorial在這裏瞭解如何使用選擇android系統

+0

我試過,但沒有運氣,甚至它settign背景didnt修復。我不知道我在做什麼錯誤 – bardu

+0

@bardu:看到我編輯的答案,我已經創建了一個示例項目,並在上面的鏈接中與您分享。嘗試一下,讓我知道你是否有任何疑問或問題。 – Houcine

相關問題