【问题标题】:Picasso loading black images from URL毕加索从 URL 加载黑色图像
【发布时间】:2017-12-13 15:27:59
【问题描述】:

我的activity的布局是这样的:

有一个视图寻呼机:

<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="@dimen/inner_frame_layout_padding"
    >

    <VerticalViewPager
        android:id="@+id/viewpager"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</FrameLayout>

viewpager 中每个条目的列布局为:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="left"
    android:text="Default category"
    android:id="@+id/name"/>

<android.support.v7.widget.RecyclerView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:scrollbars="horizontal"
    android:id="@+id/recyclerview"/>

</LinearLayout>

并且recyclerview的每一项都有布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"

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

<android.support.v7.widget.CardView
    android:id="@+id/cardView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    card_view:cardCornerRadius="3dp"
    card_view:cardElevation="10dp"
    card_view:cardMaxElevation="10dp"
    card_view:contentPadding="10dp">


    <RelativeLayout
        android:id="@+id/relativeLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center">

        <ImageView
            android:id="@+id/video_thumbnail"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:tint="@android:color/black"
            android:padding="5dp" />


    </RelativeLayout>

 </android.support.v7.widget.CardView>

</LinearLayout>

在 onBindViewHolder 中我正在使用此代码:

Uri img_uri = Uri.parse(img_url);

    final String TAG = "loadImgUrl";
    Log.d(TAG, "Loading image from url: " + img_url);



    try {
        Picasso.with(context)
                .setLoggingEnabled(true);

        Picasso.with(context)
                .load(img_uri)
                .resize(250,250)
                .centerCrop()
                .error(R.drawable.call)
                .placeholder(R.drawable.event)
                .into(imageView);
    } catch (IllegalArgumentException iae) {
        iae.printStackTrace();
    }

但结果始终是黑色图像。如果我使用存储在应用程序中的可绘制对象,则相同的代码有效。

毕加索日志或应用程序日志中没有错误。我也尝试过使用 into(Target) 但同样的问题发生了,并且错误回调永远不会被调用。

有人知道为什么会这样吗?

【问题讨论】:

  • 请问有人否决这个问题的原因?

标签: android android-recyclerview android-viewpager picasso


【解决方案1】:

您正在向正在显示图像的图像视图的色调添加黑色。

 <ImageView
        android:id="@+id/video_thumbnail"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:tint="@android:color/black"
        android:padding="5dp" />

只需去除色调android:tint="@android:color/black"

 <ImageView
            android:id="@+id/video_thumbnail"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:padding="5dp" />

阅读more 了解这里的色调以及何时使用

【讨论】:

  • 非常感谢。这么愚蠢的错误。我已经花了好几个小时了。
  • Daniyal 没关系,我们程序员偶尔会犯错,这就是我们在 StackOverflow 上互相帮助的原因。
【解决方案2】:

这行 android:tint="@android:color/black" 的问题,当你应用这个时,图像变黑并且你的图像没有显示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-29
    • 2018-08-04
    • 1970-01-01
    • 2018-07-11
    • 2014-09-26
    • 2016-12-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多