databinding设置文字和图片

databinding设置文字和图片

          • 开启databinding
          • 修改布局
          • 自定义类 用来设置文字和图片
          • 布局设置文字和图片
          • activity

开启databinding

在build.gradle文件里添加

dataBinding {
        enabled = true
    }

导入picasso包用来加载图片

implementation 'com.squareup.picasso:picasso:2.5.2'
修改布局

在根布局下alt+enter,出现如图,选择convert to data binding layout
databinding设置文字和图片_第1张图片
布局变换为下图
databinding设置文字和图片_第2张图片
在布局中设置textview 和imageview 分别用来展示文字和图片

自定义类 用来设置文字和图片
package com.mvvm.myapplication2;
import android.widget.ImageView;

import androidx.databinding.BaseObservable;
import androidx.databinding.Bindable;
import androidx.databinding.BindingAdapter;

import com.squareup.picasso.Picasso;

public class User extends BaseObservable{
    public String name;
    public String url;

    public User(String name,String url){
        this.name=name;
        this.url=url;
    }

    @Bindable
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }
    @BindingAdapter("bind:url")  //bind后的名字任意起,注方法一定要为静态,否则报错
    public static void getImage(ImageView view,String url){
        Picasso.with(view.getContext()).load(url).into(view);
    }
}
布局设置文字和图片


    
        
            type="com.mvvm.myapplication2.User" />  
    
    

        

        
    
    

   

    
activity
// setContentView(R.layout.activity_main);
ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
      User user = new User("we", "https://dss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo_top-e3b63a0b1b.png");
      binding.setUse(user);
   ==最后记得在清单文件中开启网络权限==

你可能感兴趣的:(databinding设置文字和图片)