Android:ListAdapter 示例重绘相同内容

2024-03-06

我使用此示例中的 ListAdapter:

http://code.google.com/p/au-optimizing-layouts-201/source/browse/au_optimizinglayouts/src/com/example/android/training/optimizinglayouts/OptimizedListAdapter.java?r=4 http://code.google.com/p/au-optimizing-layouts-201/source/browse/au_optimizinglayouts/src/com/example/android/training/optimizinglayouts/OptimizedListAdapter.java?r=4

这个例子不是很好,因为列表中的元素根据我滚动的速度被绘制了几次。那是因为只重用了一个

private FakeImageLoader mFakeImageLoader;

如果 FakeImageLoader.java getImage() 将加载真实图像。 需要做什么才能让这个示例运行并保持性能?

public class OptimizedListAdapter extends BaseAdapter{

        ...
        private FakeImageLoader mFakeImageLoader;

public OptimizedListAdapter(Context cxt)
        {
                // Cache the LayoutInflate to avoid asking for a new one each time.
                mLayoutInflater = LayoutInflater.from(cxt);
                mFakeImageLoader = new FakeImageLoader(cxt);
                ...

 public View getView(final int position, View convertView, ViewGroup parent)
        {
        // A ViewHolder keeps references to children views to avoid unneccessary calls
        // to findViewById() on each row.
        ViewHolder holder;

                // When convertView is not null, we can reuse it directly, there is no need
        // to reinflate it. We only inflate a new View when the convertView supplied
        // by ListView is null.
                if(convertView==null)
                {
                        convertView = mLayoutInflater.inflate(R.layout.listitem, null);

                        // Creates a ViewHolder and store references to the two children views
            // we want to bind data to.
            holder = new ViewHolder();
            holder.icon = (ImageView) convertView.findViewById(R.id.listitem_image);
            holder.text = (TextView) convertView.findViewById(R.id.listitem_text);
            holder.timestamp = (TextView) convertView.findViewById(R.id.listitem_timestamp);
            convertView.setTag(holder);
                }else
                {
                        holder = (ViewHolder) convertView.getTag();
                }

                //holder.icon.setImageDrawable(drawable);
                holder.text.setText(new StringBuffer(ITEM_PRE_TEXT).append(position));
                holder.timestamp.setText(""+(System.currentTimeMillis()-START_TIMESTAMP));
        holder.position = position;

        //during a fast scroll this could start 100's of threads, need a thread pool processing them!
        //see previous ImageLoader.
                new AsyncTask<ViewHolder, Void, Bitmap>() {
                        private ViewHolder v;

                        @Override
                        protected Bitmap doInBackground(ViewHolder... params) {
                                v = params[0];
                                return mFakeImageLoader.getImage();
                        }

                        @Override
                        protected void onPostExecute(Bitmap result) {
                                super.onPostExecute(result);
                                if(v.position == position)
                                {
                                        v.icon.setImageBitmap(result);
                                }
                        }

                  }.execute(holder);
                  //holder.icon.setImageBitmap(mFakeImageLoader.getImage());

                return convertView;
        }

谢谢塔塔


我用过这个通用图像加载库 https://github.com/nostra13/Android-Universal-Image-Loader通用图像加载器库在一个应用程序中下载图像,它对我来说更有用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android:ListAdapter 示例重绘相同内容 的相关文章

  • jquery-mobile 加载到 android WebView 中

    我无法将 jquerymobile 装饰的网页加载到 Android WebView 中 考虑 jquery 移动演示站点 http jquerymobile com demos 1 0a4 1 http jquerymobile com
  • 新的 Material Design 底部导航应使用哪个视图? [复制]

    这个问题在这里已经有答案了 我相信你们都听说过添加底部导航 https www google com design spec components bottom navigation html材料设计指南 我计划将其添加到我的应用程序中 但
  • 尝试在 Android 上使用 FFMPEG。编译但是还是不行

    首先 我尝试使用 ffmpeg 将图像数组编译成 Android 上的视频 我已经遵循了各种在线教程 并且已经能够编译 Android 的库 但仍然需要项目运行 我现在使用的存储库可以在这里找到 https github com Batte
  • Android ImageButton 在 Activity 中运行良好。它在片段中不起作用

    我正在尝试转换布局 使其包含片段 其中一个视图是具有侦听器的 ImageButton 该代码作为 Activity 运行良好 但作为 Fragment 会出现麻烦 第一个问题是我无法使用 findViewById 但我能够在这里找到答案并使
  • Android 自定义对话框因布局而膨胀 - 对齐问题

    我有一个自定义对话框 它是从dialog xml 中膨胀的 当我打开对话框时 它看起来如下所示 我在列表视图和它下面的 确定 按钮之间有一些空间 我想消除列表视图与其下方的按钮之间的空间 我怎样才能做到这一点 对话框 xml
  • android 中 y + 高度必须 <= bitmap.height()

    我想从另一个创建位图 但每次尝试都会崩溃 这是错误消息 java lang IllegalArgumentException y 高度必须 这是我尝试创作的地方 public void saveBitmap Bitmap bitmapToS
  • 如何将库项目添加到 Android Studio?

    如何添加库项目 例如 Sherlock ABS 到安卓工作室 https en wikipedia org wiki Android Studio 不是针对旧的基于 Eclipse 的 ADT 捆绑包 而是针对新的 ADT安卓工作室 htt
  • Android HTTP-post AsyncHttpClient

    public void postLoginData AsyncHttpClient myClient new AsyncHttpClient RequestParams params1 new RequestParams params1 p
  • 如何在 Android 应用程序中使用 xmlserializer 创建 xml

    您好 我正在制作一个预订应用程序 我需要在创建 xml 后将 xml 发送到服务器 如何使用创建 xmlxmlserializer创建后将其发送到服务器 http api ean com ean services rs hotel v3 l
  • Android:TelephonyManager 类

    我不明白为什么 API 文档中这么写TelephonyManager类是public 但是当我尝试创建一个实例时 它说它不是公共类 并且无法从包中访问 我看到它也说使用Context getSystemService Context TEL
  • 如何使用Multipart将图像上传到php服务器

    我一直很头疼 如何将图像上传到服务器 这对我来说是新任务 但对我来说很困惑 我在 stackoverflow 上搜索并用谷歌搜索 但我遇到了问题 我的意图是从 SD 卡上传照片并从相机拍照并上传到服务器 在ios中 这个任务已经完成 在io
  • 如何在java中从包含.0的浮点数中删除小数部分

    我只想删除包含的浮点数的小数部分 0 所有其他数字都是可以接受的 例如 I P 1 0 2 2 88 0 3 56666 4 1 45 00 99 560 O P 1 2 2 88 3 567 4 1 45 99 560 有什么方法可以做到
  • Android jUnit 测试 java.lang.NoClassDefFoundError: android/database/sqlite/SQLiteOpenHelper

    我正在尝试运行一个模拟子类的单元测试SQLiteOpenHelper但我收到以下错误 java lang NoClassDefFoundError android database sqlite SQLiteOpenHelper at ja
  • Facebook 好友请求 - 失踪好友

    我请求从我正在开发的 Android 应用程序中获取用户好友 从 Facebook Api V2 0 开始 我知道我应该只获取已经通过我的应用程序登录的用户好友 但是 尽管我知道用户的某些朋友已通过我的应用程序登录 但在请求该用户的朋友时
  • python 和 android 中通过 AES 算法加密和解密

    我有用于 AES 加密的 python 和 android 代码 当我在android中加密文本时 它在python上成功解密 但无法在android端解密 有人有想法吗 Python代码 import base64 import hash
  • SQlite 获取最近的位置(带有纬度和经度)

    我的 SQLite 数据库中存储有纬度和经度的数据 我想获取距我输入的参数最近的位置 例如我当前的位置 纬度 经度等 我知道这在 MySQL 中是可能的 并且我已经做了相当多的研究 SQLite 需要一个自定义外部函数来实现半正弦公式 计算
  • Android 10 通知彩色操作按钮

    I m trying to color the buttons Action in Notification like this So far this is what i m achieved so far 下面是我正在使用的代码 通知服
  • android 填充包含片段的布局

    问题是什么 我如何膨胀包含片段的布局 我不知道错误消息的含义 请帮我 谢谢 错误信息 09 01 18 44 58 698 E AndroidRuntime 20617 Caused by java lang IllegalArgument
  • 如何在ListView中标记视图?

    我有一个带有列表视图的应用程序 列表视图工作正常 当我希望列表以标记的某些行开始时 问题就开始了 如果我按下它 我可以标记一行 但是 似乎没有找到一种方法来在初始化时标记任何行 这是我的代码 listViewOfBluetooth getL
  • 允许使用 SurfaceTexture 在 GLSurfaceView 渲染器中进行多通道渲染

    我正在显示视频GLSurfaceView使用需要连续应用多个着色器的自定义渲染器 目前 它可以成功地使用一个着色器 但我不确定如何扩展渲染管道以连续应用多个着色器 我知道有一些关于应用多个着色器的示例 使用FrameBuffers and

随机推荐

  • Facebook、IE 和 P3P

    在过去的几周里 我试图找出 IE 中会话 cookie 保存的问题 我们的应用程序在 iFrame 内运行 因此 cookie 被视为第三方 我知道 IE 6 和 7 需要 P3P 标头 但出于某种原因 我仍然看到许多 IE6 7 用户从不
  • abraham 的 twitteroauth 库适用于 update_with_media 吗?

    abraham 的 twitteroauth 库适用于 update with media 吗 我正在使用下面的代码 但它返回我 stdClass 对象 请求 gt 1 statuses update with media json 错误
  • 正确的向量内存管理

    我正在制作一个游戏 我有一个子弹飞来飞去的矢量 当子弹完成后 我执行Bullets erase bullets begin i 然后子弹就消失了 然而它似乎并没有失去记忆 如果我创建 5000 颗子弹 然后在它们消失后再创建 5000 颗
  • @Mock 和 @InjectMocks 之间的区别

    有什么区别 Mock and InjectMocks在 Mockito 框架中 Mock创建一个模拟 InjectMocks创建类的实例并注入使用创建的模拟 Mock or Spy 注释到此实例中 注意你必须使用 RunWith Mocki
  • C# 中带有附加行的十字准线光标

    如何在屏幕截图上制作带有帮助线的十字准线光标 我知道如何制作十字光标 this Cursor System Windows Forms Cursors Cross 也可以是这样的 就像在 CAD 软件中一样 这是我使用的代码 x 和 y 是
  • 适用于 Android 的“实时”内存分析工具

    是否有适用于 Android 的 实时 内存分析器工具 类似于 XCode 中的 Instruments 大多数对内存分析的搜索都会引导我使用内存分析器工具 这很棒 但我非常感谢一个可以动态显示哪些类在应用程序的生命周期中消耗 和释放 内存
  • React:如何对渲染的组件的变化进行动画处理?

    我更改了通过时间间隔呈现的组件 我希望能够在每次发生变化时添加动画 最好的方法是什么 constructor props super props this state currentComponent 1 numberOfComponent
  • 将服务引用添加到 WP8 应用程序时出现问题

    我尝试添加服务引用http www webservicex com globalweather asmx WSDL网络服务 我转到 添加服务引用 它发现它很好 但是当我尝试单击 确定 时 出现错误 无法签出当前文件 该文件可能是只读的或锁定
  • JavaFX并发任务设置状态

    我正在为我的应用程序创建 UI 该应用程序与其他平台的版本共享核心模块 在JavaFX中 我尝试使用Task http docs oracle com javafx 2 api javafx concurrent Task htmls 在后
  • PHP 基于当前文件路径动态包含

    我想找到一种方法来包含基于当前文件路径的一些文件 例如 我有 website com templates name1 index php 这个 index php应该是一个独特的文件 我将在不同深度的许多不同目录中使用它 所以我想让代码通用
  • 如何使用数字字符实体而不是问号将 XmlDocument.Save() 编码为“us-ascii”?

    我的目标是获得一个二进制缓冲区 MemoryStream ToArray 会产生byte 在本例中 的 XML 且不会丢失 Unicode 字符 我希望 XML 序列化程序使用数字字符引用来表示任何在 ASCII 中无效的内容 到目前为止
  • 在node-sqlite3中使用Gyp中的共享库

    我是吉普新手 我不想编译我的依赖项 而是想使用共享库 特别是我的计算机上已有的 libsqlite3 so 主要的 binding gyp 目前看起来像 targets target name node sqlite3 sources sr
  • 国际键盘上常用字符的键码

    好的 从特殊符号捕获按键代码会在不同布局的键盘上产生不同的结果 但是像 a z 这样的 常见 字符呢 如果您有 QWERTY 键盘 您将获得按键代码81当你输入时q 当您拥有 AZERTY 键盘时 您会获得代码吗81当你按a since a
  • 在 HttpModule 中重写 URL 时如何使波形符 (~) 运算符起作用?

    我在用重写路径 http msdn microsoft com en us library 1kz7fdx9 aspx in an IHttpModule 路由 到子 Web 应用程序 如以下 IIS 布局所示 例如 当请求 根 布莱赫进来
  • 修改并重新编译Android SDK

    我知道Android中实现的一些方法和一些类没有导出到Android公共SDK中 我已经能够通过编译我的应用程序并将其放置在 Android 树中来创建一个使用其中一些功能的应用程序 是否可以通过从源代码重新编译这些函数来将其导出到 And
  • 如何将一个数组输入与另一个数组输入关联起来?

    假设我有 2 个扫描仪填充的阵列 name and age 每一项都按顺序填写 如果我要找到数组中最年长的人 如何使用数组打印出他们的名字和年龄 例如最大的条目age was 78 有没有办法将其与name 数组来打印它 参考代码 publ
  • 当元素有多个类时,jquery 按特定类查找元素

    所以我正在做一些后端团队在构建时没有经过深思熟虑的事情 这给我留下了一个充满 div 的文档 我正在做的是从我需要单击的元素回滚 获取父容器 然后在父容器中找到一个元素class alert box warn class alert box
  • 在自定义损失函数中重塑张量

    我有一个类似的问题这个问题 https stackoverflow com questions 43056512 reshape tensorflow tensor inside keras loss function 我正在尝试在 ker
  • 使用 WorkflowServiceHost 进行 WF4 工作流版本控制

    相关这个问题 https stackoverflow com questions 2064518 loading persisted workflow after workflowdefinition has changed in wf4
  • Android:ListAdapter 示例重绘相同内容

    我使用此示例中的 ListAdapter http code google com p au optimizing layouts 201 source browse au optimizinglayouts src com example