如何在触摸滑动抽屉内更改图像?

时间:2015-04-18 18:16:28

标签: android

当我触摸操作栏上的抽屉图标时,我正在从右向左导航打开滑动抽屉。工作正常,关闭切换图标。没问题

我关注http://www.androidhive.info/2013/11/android-sliding-menu-using-navigation-drawer/

在滑动布局中,我有一个小图标vibrate_ON.png。

现在我想在触摸滑动菜单中的图像时,它将被更改为vibrate_OFF等等,切换,保持滑动菜单打开。

怎么做?

2 个答案:

答案 0 :(得分:0)

您可以执行以下操作:

vibrateImageOn.setOnClickListener(new OnClickListener() {
  @Override public void onClick(View v) {
    vibrateImageOff.setVisibility(View.Visible);
    vibrateImageOn.setVisibility(View.GONE);
  }
});

vibrateImageOff.setOnClickListener(new OnClickListener() {
  @Override public void onClick(View v) {
    vibrateImageOn.setVisibility(View.Visible);
    vibrateImageOff.setVisibility(View.GONE);
  }
});

假设你将它们加载到ImageViews并且它们具有相同的位置,那么这应该有效。虽然,它有点凌乱..

答案 1 :(得分:0)

您可以在滑动菜单中放置布局以获得更多控件。要做到这一点,你必须采取一些措施:

1)布局:

<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_vertical">
<!-- The main content view -->
<FrameLayout
    android:id="@+id/content_frame"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#f4f4f4" />
<!-- The navigation drawer -->
<LinearLayout
    android:id="@+id/linearLayout"
    android:layout_width="220dp"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:layout_gravity="start"
    android:choiceMode="singleChoice"
    android:divider="@android:color/transparent"
    android:dividerHeight="0dp"
    android:background="#fff">
    <!-- you can set any layout here -->
    <TextView
        android:id="@+id/tv_word"
        android:text="New words"
        android:layout_marginLeft="5dp"
        android:layout_marginTop="10dp"
        android:paddingBottom="5dp"
        android:paddingTop="5dp"
        android:layout_width="210dp"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:layout_height="wrap_content" />

</LinearLayout>

</android.support.v4.widget.DrawerLayout>

2)处理事件(请勿忘记closeDrawer

DrawerLayout mDrawerLayout = (DrawerLayout)findViewById(R.id.drawer_layout);
LinearLayout linearLayout = (LinearLayout)findViewById(R.id.linearLayout);
TextView tv_word = (TextView )findViewById(R.id.tv_word );
tv_word.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        mDrawerLayout.closeDrawer(linearLayout);//don't forget it
        //.....
    }
});