毕加索从 URL 加载黑色图像
Picasso loading black images from URL
我的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();
}
但结果始终是黑色图像。如果我使用存储在应用程序中的可绘制对象,则相同的代码有效。
picasso日志和app日志都没有错误。我也尝试过使用 into(Target) 但同样的问题出现了,错误回调永远不会被调用。
有人知道为什么会这样吗?
您正在向显示图像的图像视图添加黑色色调。
<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" />
在此处阅读关于色调以及何时使用
此行有问题 android:tint="@android:color/black",当您应用它时,图像变黑并且您的图像无法显示。
我的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();
}
但结果始终是黑色图像。如果我使用存储在应用程序中的可绘制对象,则相同的代码有效。
picasso日志和app日志都没有错误。我也尝试过使用 into(Target) 但同样的问题出现了,错误回调永远不会被调用。
有人知道为什么会这样吗?
您正在向显示图像的图像视图添加黑色色调。
<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" />
在此处阅读
此行有问题 android:tint="@android:color/black",当您应用它时,图像变黑并且您的图像无法显示。