東邪HUX 2018-01-12 07:41 采纳率: 0%
浏览 2193
已采纳

如何在include的xml布局中使用观察者模式对ImageView显示的图片进行修改

主布局
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:bind="http://schemas.android.com/apk/res-auto">

<data>
    <import type="android.databinding.ObservableMap"/>
    <import type="com.village.crops.utils.DataBindUtil"/>
    <variable
        name="main"
        type="ObservableMap&lt;String,Integer&gt;"/>

    <variable
        name="click"
        type="com.village.crops.activity.MainActivity"/>

    <variable
        name="imageUtil"
        type="DataBindUtil"/>

    <variable
        name="imageUrl"
        type="Integer"/>
</data>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@color/colorWhite"
    android:orientation="vertical" >


    <FrameLayout
        android:id="@+id/content"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1">
    </FrameLayout>

    <include
        android:id="@+id/village_base_bottom"
        layout="@layout/village_bottom"
        bind:main="@{main}"
        bind:click="@{click}"
        bind:imageUtil="@{imageUtil}"
        bind:imageUrl="@{imageUrl}"/>

</LinearLayout>

引用布局
<?xml version="1.0" encoding="utf-8"?>
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:bind="http://schemas.android.com/apk/res-auto">

<data>
    <import type="android.databinding.ObservableMap"/>
    <import type="com.village.crops.utils.DataBindUtil"/>
    <variable
        name="main"
        type="ObservableMap&lt;String,Integer&gt;"/>

    <variable
        name="click"
        type="com.village.crops.activity.MainActivity"/>

    <variable
        name="imageUtil"
        type="DataBindUtil"/>

    <variable
        name="imageUrl"
        type="Integer"/>
</data>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:background="@color/colorWhite"
    android:gravity="center_vertical">

    <LinearLayout
        android:id="@+id/layout_home"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:layout_weight="1"
        android:orientation="vertical"
        android:onClick="@{click.onClick}">

        <ImageView
            android:id="@+id/img_home"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:src='@{main["imgid"]}'
            bind:imageUrl="@{imageUrl}"/>

        <TextView
            android:id="@+id/text_home"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            style="@style/VillageTextTheme"
            android:text="@string/home_home"
            android:textColor='@{main["textColor"]}'/>

    </LinearLayout>

</LinearLayout>

Main代码
activityMainBinding = DataBindingUtil.setContentView(this,R.layout.activity_main);

ObservableArrayMap resourceMap = new ObservableArrayMap<>();
resourceMap.put("imgid",R.mipmap.icon_home_car_sel);
resourceMap.put("textColor", Color.RED);

   activityMainBinding.setClick(this);
   activityMainBinding.setMain(resourceMap);
  • 写回答

1条回答 默认 最新

  • devmiao 2018-01-12 11:07
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题