Пикассо не загружает URL-адрес в ImageView При передаче значений бросить конструктор - PullRequest
0 голосов
/ 11 января 2019

Я использую Picasso с bindingAdapter для загрузки URL-адреса в imageView, я привязал модель и макет, и Picasso внутри bindingAdapter работает и загружает URL-адрес, когда я устанавливаю переменную привязки с конструктором по умолчанию в MainActivity.

Но при установке переменной привязки для другого конструктора, передающего значения, Picasso не загружает URL?

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);
    binding=DataBindingUtil.setContentView(this,R.layout.activity_main);



    //in this case .........> Picasso loads images
    binding.setGame(new Game());




    //but in this case .........>Picasso deosnt load images
    binding.setGame(new Game("Ori","//i.imgur.com/CQ7Ts4d.png"
                           ,"http://i.imgur.com/CQ7Ts4d.png"));

URL-адрес передается в loadImage, и я могу регистрировать URL-адрес, но я не понимаю, почему Пикассо не загружает его в представление?

@BindingAdapter("loadImage")
public static void loadImage(ImageView view, String url) {
    if(url==null){
        url="http://i.imgur.com/CQ7Ts4d.png";

        Log.d(TAG,"  .....................[Cover Url is empty].................................");
    }else {
        Log.d(TAG,url);
    }

    Picasso.get()
            .load(url)
            .transform(new RoundedCornersTransformation(30, 0,
                    RoundedCornersTransformation.CornerType.ALL))
            .into(view);

а это моя модель



    private static final String TAG = "Testing";
    private String name;
    private String cover;
    private String backGround;


    public Game(){
    }


    public Game(String name, String cover, String backGround) {
        this.name = name;
        this.cover = cover;
        this.backGround = backGround;

    }




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

    public void setCover(String cover) {
        this.cover = cover;
        notifyPropertyChanged(BR.cover);
    }

    public void setBackGround(String backGround) {
        this.backGround = backGround;
        notifyPropertyChanged(BR.backGround);
    }





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

    @Bindable
    public String getCover() {
        return cover;
    }

    @Bindable
    public String getBackGround() {
        return backGround;
    }






    @BindingAdapter("loadImage")
    public static void loadImage(ImageView view, String url) {
        if(url==null){
            url="http://i.imgur.com/CQ7Ts4d.png";

            Log.d(TAG,"  .....................[Cover Url is empty].................................");
        }else {
            Log.d(TAG,url);
        }

        Picasso.get()
                .load(url)
                .transform(new RoundedCornersTransformation(30, 0,
                        RoundedCornersTransformation.CornerType.ALL))
                .into(view);

и макет

<data>
    <variable
        name="game"
        type="com.example.surface.gamehub.Game"/> 

android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">



<ImageView
    android:id="@+id/game_background"
    android:layout_width="match_parent"
    android:layout_height="161dp"
    android:scaleType="fitXY"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:srcCompat="@drawable/back_grounnd"
    app:blurImage="@{game.backGround}"

    />

<ImageView
    android:id="@+id/imageView2"
    android:layout_width="match_parent"
    android:layout_height="28dp"
    app:layout_constraintBottom_toBottomOf="@+id/game_background"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:srcCompat="@color/transperante_gray" />


<ImageView
    android:id="@+id/game_cover"
    android:layout_width="103dp"
    android:layout_height="130dp"
    android:layout_marginStart="20dp"
    android:layout_marginTop="100dp"
    android:scaleType="fitXY"
    app:layout_constraintStart_toStartOf="@+id/game_background"
    app:layout_constraintTop_toTopOf="parent"
    app:loadImage="@{game.cover}"
    tools:src="@drawable/cover"

1 Ответ

0 голосов
/ 13 января 2019

спустя долгое время я узнал, что все это произошло, потому что URL-адреса, которые я передаю, не включали ( http: //..), Я получал (// .....) URL-адреса форма JSON, так что я думаю, что я должен сформировать их в виде строки.

...