问题标签 [networkimageview]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
827 浏览

android - RecyclerView 中的 NetworkImageView 因回收而导致显示问题

因此,我将 MVVM、数据绑定、RecyclerView 和 Volley ImageLoader 与 NetworkImageView 一起使用。

而且我基本上试图显示包含 NetworkImageViews(使用 Volley 和 ImageLoader)的一些项目(不是全部)的提要。

问题是我的持有人被回收了,而我的“当前” NetworkImageView 正在显示以前询问的 imageUrl(要求另一张卡)。

我做了一些研究,如果我的持有人被回收,我必须取消请求。我明白了,我真的不知道如何在我当前的代码中执行此操作并执行CLEAN

PS:我不想避免我的 RecyclerView 的回收(那时没有使用它的意义)。

我真的很惊讶 ImageLoader/ImageContainer 默认无法正确处理这个问题。如果有一种简单、有效且易于维护的方法可以使用另一个库(Fresco、Picasso、Glide、UIL...)来实现这一点,为什么不呢?

有我的适配器:

还有我的ViewModel的主要内容

0 投票
1 回答
530 浏览

android - 如何为 NetworkImageView 设置 scaleType

NetworkImageView我查看了这里的源代码,它通过使用设置图像setImageBitmap(bitmap)。如果我错了,请纠正我,缩放位图的方法是使用setImageBitmap(Bitmap.createScaledBitmap(...)), 和scaleTypeforNetworkImageView不起作用。

例如,我尝试myNetworkImagView.setScaleType(ImageView.ScaleType.FIT_CENTER)了哪个不起作用。

除了用重写类之外myNetworkImageView,是否有一种简单的扩展方法?setScaleTypeNetworkImageViewcreateScaledBitmap(...)

0 投票
7 回答
23578 浏览

android - 尝试调用虚拟方法“int java.lang.String.hashCode()”

我正在尝试使用 Volley Library 将图像从 URL 加载到 girdview 中。为此,我正在关注教程。当我运行我的项目时,它会从服务器数据库中收集所有 URL,然后存储在 arraylist 中。但不显示图像。我得到了java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.hashCode()' on a null object reference错误。它甚至没有指向我收到此错误的任何代码行数。请参阅下面的 Logcat 输出:

任何人都可以帮助我确切的问题是什么,我该如何解决?

0 投票
1 回答
359 浏览

android - 凌空 NullPointerException

我正在使用 volley.jar 编译时没有错误,但有运行时异常。

我添加了 volley.jar 并添加了构建路径。什么是问题?

java.lang.NullPointerException 在 com.android.volley.toolbox.NetworkImageView.loadImageIfNecessary(NetworkImageView.java:150) 在 com.android.volley.toolbox.NetworkImageView.onLayout(NetworkImageView.java:199) 在 android.view.View。 android.widget.LinearLayout.setChildFrame(LinearLayout.java:1682) 的布局(View.java:14898) android.widget.LinearLayout.layoutHorizo​​ntal(LinearLayout.java:1671) 的 android.widget.LinearLayout.onLayout(LinearLayout.java :1447) 在 android.view.View.layout(View.java:14898) 在 android.view.ViewGroup.layout(ViewGroup.java:4676) 在 android.widget.ListView.setupChild(ListView.java:1894) 在 android .widget.ListView.makeAndAddView(ListView.java:1805) 在 android.widget.ListView.fillDown(ListView.java:698) 在 android.widget.ListView.fillFromTop(ListView.java:759) 在 android.widget.ListView.layoutChildren(ListView.java:1637) 在 android.widget.AbsListView.onLayout(AbsListView.java:2144) 在 android.view.View.layout(View.java:14898) 在 android。 view.ViewGroup.layout(ViewGroup.java:4676) 在 android.widget.LinearLayout.setChildFrame(LinearLayout.java:1682) 在 android.widget.LinearLayout.layoutVertical(LinearLayout.java:1536) 在 android.widget.LinearLayout.onLayout (LinearLayout.java:1445) 在 android.view.View.layout(View.java:14898) 在 android.view.ViewGroup.layout(ViewGroup.java:4676) 在 android.widget.FrameLayout.layoutChildren(FrameLayout.java: 453) 在 android.view.View.layout(View.java:14898) 在 android.view.ViewGroup.layout(ViewGroup.java:4676) 在 android.widget.FrameLayout.onLayout(FrameLayout.java:388) 在 android。小部件。FrameLayout.layoutChildren(FrameLayout.java:453) at android.widget.FrameLayout.onLayout(FrameLayout.java:388) at android.view.View.layout(View.java:14898) at android.view.ViewGroup.layout(ViewGroup .java:4676) 在 android.view.ViewGroup.layout(ViewGroup. java:4676) 在 android.widget.RelativeLayout.onLayout(RelativeLayout.java:1055) 在 android.view.View.layout(View.java:14898) 在 android.view.ViewGroup.layout(ViewGroup.java:4676) 在android.widget.FrameLayout.layoutChildren(FrameLayout.java:453) 在 android.widget.FrameLayout.onLayout(FrameLayout.java:388) 在 android.view.View.layout(View.java:14898) 在 android.view.ViewGroup .layout(ViewGroup.java:4676) 在 com。android.internal.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:374) 在 android.view.View.layout(View.java:14898) 在 android.view.ViewGroup.layout(ViewGroup.java:4676) 在 android.widget .FrameLayout.layoutChildren(FrameLayout.java:453) at android.widget.FrameLayout.onLayout(FrameLayout.java:388) at android.view.View.layout(View.java:14898) at android.view.ViewGroup.layout( ViewGroup.java:4676) 在 android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2014) 在 android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1771) 在 android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1013 ) 在 android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5746) 在 android.view.Choreographer$CallbackRecord.run(Choreographer.java:761) 在 android.view。Choreographer.doCallbacks(Choreographer.java:574) 在 android.view.Choreographer.doFrame(Choreographer.java:544) 在 android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747) 在 android.os.Handler.handleCallback (Handler.java:733) 在 android.os.Handler.dispatchMessage(Handler.java:95) 在 android.os.Looper.loop(Looper.java:136) 在 android.app.ActivityThread.main(ActivityThread.java: 5068) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 java.lang.reflect.Method.invoke(Method.java:515) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit. java:792) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608) 在 dalvik.system.NativeStart.main(Native Method)doFrame(Choreographer.java:544) 在 android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747) 在 android.os.Handler.handleCallback(Handler.java:733) 在 android.os.Handler.dispatchMessage(Handler .java:95) 在 android.os.Looper.loop(Looper.java:136) 在 android.app.ActivityThread.main(ActivityThread.java:5068) 在 java.lang.reflect.Method.invokeNative(Native Method) 在java.lang.reflect.Method.invoke(Method.java:515) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792) 在 com.android.internal.os.ZygoteInit.main( ZygoteInit.java:608) 在 dalvik.system.NativeStart.main(Native 方法)doFrame(Choreographer.java:544) 在 android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747) 在 android.os.Handler.handleCallback(Handler.java:733) 在 android.os.Handler.dispatchMessage(Handler .java:95) 在 android.os.Looper.loop(Looper.java:136) 在 android.app.ActivityThread.main(ActivityThread.java:5068) 在 java.lang.reflect.Method.invokeNative(Native Method) 在java.lang.reflect.Method.invoke(Method.java:515) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792) 在 com.android.internal.os.ZygoteInit.main( ZygoteInit.java:608) 在 dalvik.system.NativeStart.main(Native 方法)handleCallback(Handler.java:733) 在 android.os.Handler.dispatchMessage(Handler.java:95) 在 android.os.Looper.loop(Looper.java:136) 在 android.app.ActivityThread.main(ActivityThread.java :5068) 在 java.lang.reflect.Method.invoke(Method.java:515) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit .java:792) 在 dalvik.system.NativeStart.main(Native Method) 的 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608)handleCallback(Handler.java:733) 在 android.os.Handler.dispatchMessage(Handler.java:95) 在 android.os.Looper.loop(Looper.java:136) 在 android.app.ActivityThread.main(ActivityThread.java :5068) 在 java.lang.reflect.Method.invoke(Method.java:515) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit .java:792) 在 dalvik.system.NativeStart.main(Native Method) 的 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608)515) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608) 在 dalvik.system.NativeStart.main (本机方法)515) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608) 在 dalvik.system.NativeStart.main (本机方法)

CustomAdapter.java

}

list_item.xml

线性布局

0 投票
0 回答
97 浏览

android - 为 RoundedNetworkImageView 添加边框

我正在使用 RoundedNetworkImageView。我想为它添加一个 1 dp 的边框。如果我创建一个单独的可绘制对象并将其作为 RoundedNetworkImageView 的背景,那么它会替换视图的圆度。我如何更新下面的代码以向 imageview 添加边框? 以下是我正在使用的代码 -

0 投票
0 回答
284 浏览

android - NetworkImageView 手动从缓存中加载图像

我在 RecyclerView.Adapter 中使用 NetworkImageView 来下载一些图像并将它们显示在列表中。

但我意识到,即使图像已经缓存在磁盘上,每次它都会尝试再次下载图像。

此下载失败时会出现问题,因为我无法在此 NetworkImageView 中设置 Response.Listener 无法尝试再次下载它。

因此,我正在检查图像是否已被缓存以手动加载。我正在使用在这个问题上推荐的 CustomNetworkImageView。

但它不加载位图。

有没有更好的方法来处理这种情况?

0 投票
1 回答
528 浏览

android - 包含来自 volley 库的 NetworkImageView 的 Android gridview 在滚动时重复图像

我正在使用 NetworkImageView 从我的 Gridview 中的 Url 加载图像。

它第一次运行良好,但在 Scroll 上,网格项目开始在随机位置复制。

下面是我的 GridView 适配器代码:

网格项中的文本工作正常,但问题仅发生在凌空图像加载器导致图像重复时。

请帮忙。

0 投票
1 回答
691 浏览

android - 如何使用 Volley 清除特定 NetworkImageView 的缓存?

我的应用程序中有一个 NetworkImageView,并且数据库中的链接每五秒更改一次,因此我必须删除缓存以刷新图像。我试过这段代码,但它没有删除缓存。

0 投票
1 回答
66 浏览

android - 回收站视图的 ImageDetailsActivity

在我的 android 应用程序中,我列出了带有网络图像视图的图像预览。我希望如果用户按下预览,它会打开一个带有 viewpager 的活动并显示我的回收站视图的特定项目的原始图像。所以,我有两种方法。

1-) 我将为我的数据库中的每个图像保存两个图像。其中一个是小尺寸的预览图像,另一个是原始图像。在我的主要新闻源中,应用程序将加载预览图像,因此下载大小会更小。如果用户按下预览图像,它将打开活动并下载原始图像。

2-) 我的数据库中只有原始图像,我会在下载后最小化它的大小,如果用户按下预览,它将直接显示原始图像,因为它已经下载。

我想知道哪个是更好的方法,或者有比这些更好的方法吗?

这是我为我的图像设置点击监听器的地方:

谢谢你。

0 投票
1 回答
373 浏览

android - 网络图像视图的 center_crop 不起作用

我正在NetworkImageView像这样以编程方式创建:

ScaleType.CENTER_CROP功能不起作用。你有什么主意吗?谢谢你。