问题标签 [imageview]
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.
android - 在不同线程上的 ListView 中加载图像的安全标准方法?
在提出这个问题之前,我已经搜索并阅读了这些问题: 在 ListView Android 中延迟加载图像 - 将图像延迟加载到 ListView 中的问题
我的问题是我有一个ListView
,其中:
- 每行包含一个
ImageView
,其内容将从互联网加载 - 每一行的视图都像 ApiDemo 的 List14 一样被回收
我最终想要的:
- 延迟加载图像,仅当用户滚动到它们时
- 在不同的线程上加载图像以保持响应能力
我目前的做法:
- 在适配器的
getView()
方法中,除了设置其他子视图之外,我还启动了一个从 Internet 加载位图的新线程。当该加载线程完成时,它会返回Bitmap
要设置的ImageView
(我使用AsyncTask
or来执行此操作Handler
)。 - 因为我recycle
ImageView
s,所以可能是我先想用 设置一个视图Bitmap#1
,然后想Bitmap#2
在用户向下滚动的时候设置它。Bitmap#1
可能碰巧需要比Bitmap#2
加载更长的时间,因此它最终可能会覆盖Bitmap#2
视图。我通过维护一个WeakHashMap
记住Bitmap
我想为该视图设置的最后一个来解决这个问题。
下面是我当前方法的一些伪代码。我省略了缓存等其他细节,只是为了保持清楚。
我仍然遇到的问题:如果 Activity 在某些图像仍在加载时被破坏怎么办?
- 当 Activity 已经销毁时,加载线程稍后回调 ImageView 是否有任何风险?
- 此外,
AsyncTask
它下面有一些全局线程池,所以如果不再需要冗长的任务时没有取消它们,我最终可能会浪费时间加载用户
看不到的东西。我目前在全球范围内保留这个东西的设计太丑陋了,最终可能会导致一些我无法理解的泄漏。ImageLoader
我没有像这样制作 单例,而是考虑实际ImageLoader
为 different 创建单独的对象Activities
,然后当 anActivity
被销毁时,它的所有 内容都AsyncTask
将被取消。这也太尴尬了吧?
无论如何,我想知道在 Android 中是否有一种安全且标准的方法来执行此操作。另外,我不了解 iPhone,但那里有类似的问题吗?他们有标准的方法来完成这种任务吗?
非常感谢。
android - 如何将位图设置为从相机捕获的 main.xml 中的 ImageView?
我在 main.xml 中有一个 Imageview,如何将位图设置为 main.xml 中的 imageView 我可以在下面的代码中将位图分配给本地图像视图。
android - Android:ImageView 放大源图像
我似乎无法让我的 ImageView 以原始大小显示其源图像。ImageView 看起来像这样:
源图像是 140 像素宽,但在 Nexus One 的屏幕上,它是 480 像素宽,它占用了一半的宽度。使用 px 或 dp 中的绝对值作为宽度和高度不会改变任何内容。图像在放大后看起来也非常抗锯齿。为什么会发生这种情况,我该如何预防?
android - 如何为 ImageView 设置LayoutParams()?
我想设置LayoutParams
一个ImageView
但似乎无法找到正确的方法。
我只能在 API 中找到ViewGroups
各种ImageView
. 然而ImageView
似乎有这个功能。
此代码不起作用...
我该怎么做?
android - 更改 ImageView 源
我ImageView
使用以下语法在 xml 中设置了源图像:
现在我需要以编程方式更改此图像。我需要做的是删除旧图像并添加一个新图像。我所做的是这样的:
它有效,但我注意到 android 将新图像堆叠在旧图像之上(不要问我如何发现它与讨论无关:)。在设置新图像之前,我肯定需要摆脱旧图像。
我怎样才能做到这一点?
android - Android 在视频缓冲时显示图像?
我有一个使用 VideoView 显示视频的应用程序。布局由一个 Clock 和一个 VideoView 组成,布局在一个简单的垂直 LinearLayout 中。
这是我使用的代码片段:
由于视频的缓冲大约需要 8-10 秒,因此布局出现了时钟,但 VideoView 保持空白。我想要实现的是:
-- 在视频缓冲时显示 10 秒的 ImageView -- 检测视频何时准备好播放(onPrepared?) -- 显示时钟和 VideoView 并启动视频
有人对如何解决这个问题有任何指示吗?
谢谢克里斯
android - Android改变ImageView的方向
是否可以将 ImageView 的方向更改为始终为 PORTRAIT,而 Activity 中的其他视图可以旋转?
由于图像在旋转时并不总是看起来很好......
谢谢克里斯
android - 在Android中将ImageView添加到ScrollView时的冗余边距
我一直在尝试在具有 JPG(~770 x 1024)的单个 ImageView 上使用 ScrollView,而不是 600x800 的 AVD。
我的 main.xml 是:
现在,我添加了一个 ImageView
结果是图像显示在 ScrollView 的中间,顶部和底部用背景区域包裹,如下所示:
而不仅仅是
我尝试将 ImageView 的背景设置为红色,并验证了空白边距是 ImageView 背景。
我希望图像的大小不超过其大小(缩放到 AVD 大小),并且我希望 ScrollView 让我滚动剩余部分(如果有的话)。
出于某种原因,我看到可绘制尺寸是 600x1024。
此外 ,我尝试添加一个带有虚拟文本视图的 LinearLayout,例如线性布局是 ImageView 和 TextView 的父级,而 ScrollView 是 LinearLayout 的父级。
结果非常奇特:整个布局设置为无文本文本视图的高度(19)。
避免拉伸图像对我来说很重要。我不能将 FIT_XY 用于 ScaleType。实现可滚动页面显示的推荐方法是什么?我是否必须使用简单的布局手动完成并在GestureDetector.OnScroll事件上滚动?
谢谢
什穆尔
PS:另一个观察:将图像缩小到 600x780(按比例缩放),它确实可以正常工作。不幸的是,对我来说,使用一组缩小的图像克隆是不可行的。
android - 解锁 Android 图像无法显示
每当 Android 设备锁定并解锁时,ImageView 中显示的图像就会消失。我需要做什么才能重新显示它或防止这种情况发生。
更多:我有一个根据上下文显示视频、图像或文本的视图以及扩展父视图的三个子类。在创建时,我将显示视图替换为从 createMediaPreview() 返回的 View 对象,每个子类都实现了该对象。
提前致谢