网站托管什么意思多媒体网页设计教程

news/2025/10/9 0:25:04/文章来源:
网站托管什么意思,多媒体网页设计教程,广州冼村的人为什么这么有钱,软文推广文案原文地址#xff1a;http://android.xsoftlab.net/training/displaying-bitmaps/process-bitmap.html 我们在上节课Load Large Bitmaps Efficiently中讨论了BitmapFactory.decode*方法#xff0c;说到了不应该在UI线程中执行读取数据的过程#xff0c;尤其是从磁盘或者网络…原文地址http://android.xsoftlab.net/training/displaying-bitmaps/process-bitmap.html 我们在上节课Load Large Bitmaps Efficiently中讨论了BitmapFactory.decode*方法说到了不应该在UI线程中执行读取数据的过程尤其是从磁盘或者网络上读取数据(或者其它读取速度次于内存的地方)。读取数据的时间是不可预料的这取决于各种各样的因素(从磁盘或者网络读取的速度、图片的大小、CPU的功率,etc.)。如果这其中的一个因素阻塞了UI线程那么系统会标志程序为无响应标志并会给用户提供一个关闭的选项(请查看Designing for Responsiveness获取更多信息)。 这节课讨论了通过使用AsyncTask在非UI线程中处理位图以及展示如何处理并发问题。 使用AsyncTask 类AsyncTask提供了一种简要的方式来处理后台进程的工作并会将处理后的结果推送到UI线程中。如果要使用这个类需要创建该类的子类然后重写所提供的方法。这里有个例子展示了如何使用AsyncTask及decodeSampledBitmapFromResource()来加载一张大图到ImageView上 class BitmapWorkerTask extends AsyncTaskInteger, Void, Bitmap {private final WeakReferenceImageView imageViewReference;private int data 0;public BitmapWorkerTask(ImageView imageView) {// Use a WeakReference to ensure the ImageView can be garbage collectedimageViewReference new WeakReferenceImageView(imageView);}// Decode image in background.Overrideprotected Bitmap doInBackground(Integer... params) {data params[0];return decodeSampledBitmapFromResource(getResources(), data, 100, 100));}// Once complete, see if ImageView is still around and set bitmap.Overrideprotected void onPostExecute(Bitmap bitmap) {if (imageViewReference ! null bitmap ! null) {final ImageView imageView imageViewReference.get();if (imageView ! null) {imageView.setImageBitmap(bitmap);}}} } ImageView的WeakReference可以确保AsyncTask不会阻止ImageView及它所引用的事务被垃圾回收器回收。这不能保证在任务执行完毕的时候ImageView还依然存在所以你还必须在onPostExecute()方法中检查一下它的引用。ImageView可能已经不存在了,比如说吧当用户离开了activity或者在任务结束的时候一些配置发生了变化。 为了启动异步任务来加载图片,需要简单的创建一个新任务并执行它: public void loadBitmap(int resId, ImageView imageView) {BitmapWorkerTask task new BitmapWorkerTask(imageView);task.execute(resId); } 处理并发 一些普通的View控件比如ListView和GridView会涉及到另一个问题就是当与AsyncTask结合使用的时候会出现并发问题。为了能有效的使用内存这些控件会随着用户的滑动来回收子View。如果每一个子View都会触发一个AsyncTask那么就不能保障在任务完成的时候与之相关联的View没有被回收利用。此外对于顺序启动的任务也不能保障可以按顺序完成。 博客Multithreading for Performance进一步的讨论了如何处理并发它提供了一个解决方案在ImageView中存储了最近的AsyncTask的引用这个引用可以在任务完成的时候对最近的AsyncTask进行检查。通过类似的办法那么上面章节的AsyncTask可以被扩展成类似的模式。 创建一个专用的Drawable子类来存储工作任务的引用。在这种情况下BitmapDrawable就会被用到所以在任务完成之前可以有一个占位图显示在ImageView上 static class AsyncDrawable extends BitmapDrawable {private final WeakReferenceBitmapWorkerTask bitmapWorkerTaskReference;public AsyncDrawable(Resources res, Bitmap bitmap,BitmapWorkerTask bitmapWorkerTask) {super(res, bitmap);bitmapWorkerTaskReference new WeakReferenceBitmapWorkerTask(bitmapWorkerTask);}public BitmapWorkerTask getBitmapWorkerTask() {return bitmapWorkerTaskReference.get();} } 在执行BitmapWorkerTask任务之前你可以创建一个AsyncDrawable并将这个任务绑定到目标ImageView上 public void loadBitmap(int resId, ImageView imageView) {if (cancelPotentialWork(resId, imageView)) {final BitmapWorkerTask task new BitmapWorkerTask(imageView);final AsyncDrawable asyncDrawable new AsyncDrawable(getResources(), mPlaceHolderBitmap, task);imageView.setImageDrawable(asyncDrawable);task.execute(resId);} } 上面代码所引用的cancelPotentialWork()方法用来检查是否有另外在进行中的任务已经与ImageView关联上了。如果是这样的话它会通过cancel()尝试取消原来的任务。在少数情况下新建的任务数据可能会与已经存在的任务相匹配所以就不要有进一步的动作。下面是cancelPotentialWork()方法的实现 public static boolean cancelPotentialWork(int data, ImageView imageView) {final BitmapWorkerTask bitmapWorkerTask getBitmapWorkerTask(imageView);if (bitmapWorkerTask ! null) {final int bitmapData bitmapWorkerTask.data;// If bitmapData is not yet set or it differs from the new dataif (bitmapData 0 || bitmapData ! data) {// Cancel previous taskbitmapWorkerTask.cancel(true);} else {// The same work is already in progressreturn false;}}// No task associated with the ImageView, or an existing task was cancelledreturn true; } 有个辅助方法getBitmapWorkerTask()它被用来接收与指定ImageView相关联的任务 private static BitmapWorkerTask getBitmapWorkerTask(ImageView imageView) {if (imageView ! null) {final Drawable drawable imageView.getDrawable();if (drawable instanceof AsyncDrawable) {final AsyncDrawable asyncDrawable (AsyncDrawable) drawable;return asyncDrawable.getBitmapWorkerTask();}}return null; } 最后一步就是在BitmapWorkerTask中更新onPostExecute()所以它会检查任务是否已经被取消和检查当前的任务是否与与之相关联的ImageView相匹配 class BitmapWorkerTask extends AsyncTaskInteger, Void, Bitmap {...Overrideprotected void onPostExecute(Bitmap bitmap) {if (isCancelled()) {bitmap null;}if (imageViewReference ! null bitmap ! null) {final ImageView imageView imageViewReference.get();final BitmapWorkerTask bitmapWorkerTask getBitmapWorkerTask(imageView);if (this bitmapWorkerTask imageView ! null) {imageView.setImageBitmap(bitmap);}}} } 现在这个实现就适合用到类似ListView和GridView这种会回收它们子View的组件上了简单的调用loadBitmap()就可以正常给ImageView设置图片了。比如在一个GridView的实现中这个方法就可以在相应适配器的getView()方法中使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/932087.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vs 2017网站开发php网站开发类型什么意思

文章目录题目描述思路 && 代码二刷最近一直在充电基础知识、维护 leetcode 总结博客 今天继续摸一摸新题目吧~ 题目描述 感觉和 03. 无重复的最长子串 有点像,都是在字符串上用滑动窗口来找子串。并且都是属于那种,解决一次以后&…

海派虫网站推广软件wordpress跳转到登录页面代码

ES6是JavaScript的一个重要版本,其中包含了许多新的语法和特性,其中迭代器和生成器是其中非常重要的特性之一。本文将详细介绍迭代器和生成器的概念、用法以及注意事项。 目录 1. 是什么2. 为什么存在3. 怎么使用3.1 迭代器3.2 生成器3.3 for...of循环3…

昭通网站建设公司自己做的网站怎么放到网上去

图像像素存储形式  对于只有黑白颜色的灰度图,为单通道,一个像素块对应矩阵中一个数字,数值为0到255, 其中0表示最暗(黑色) ,255表示最亮(白色) 对于采用RGB模式的彩色图片&#…

国庆七日赛训总结

前五天跟高中生听noi金牌选手讲课,打的是noip模拟赛,均分150左右。 倒是学到了不少新算法,收获颇丰。 后两天在提高组上课,打s组模拟赛 分别取得190和170,其中两次的t2都是能对,却遇到了除以0re和数组开小的问题…

免费试用网站制作设计说明书范文

用来查询农历年的代码,可能比较粗糙,希望不要太打击偶,哈哈。一,Console.java[用来获取控制台的输入]/*#()Console.java 20:40:25 2/2/2006控制台消息输入/输出。*/import java.io.*;import java.text.SimpleDateFormat;import ja…

湘乡网站seo北京搜索引擎优化主管

入门效果之浮雕 "浮雕"图象效果是指图像的前景前向凸出背景。常见于一些纪念碑的雕刻上。要实现浮雕事实上很easy。我们把图象的一个象素和左上方的象素进行求差运算。并加上一个灰度。这个灰度就是表示背景颜色。这里我们设置这个插值为128 (图象RGB的值是0-255)。同…

task2.c

task2.cinclude <stdio.h> int main() { double a, b, c; scanf_s("%lf%lf%lf" , &a, &b, &c); if (a + b > c and a + c > b and b + c > a)printf("能构成三角形\n"…

还有网站吗建域名做网站

auto的实际价值就是简化代码&#xff0c;类型很长时可以自动推导。也可以用typedef&#xff0c;main函数里面也能typedef&#xff0c;不一定要在全局定义。 &#xff08;1&#xff09;类型别名思考 随着程序越来越复杂&#xff0c;程序中用到的类型也越来越复杂&#xff0c;经…

SpringCloud实用篇02-(Nacos配置管理,Feign远程调用,Gateway服务网关) - a

SpringCloud实用篇02-(Nacos配置管理,Feign远程调用,Gateway服务网关) 目录SpringCloud实用篇02-(Nacos配置管理,Feign远程调用,Gateway服务网关)0.学习目标1.Nacos配置管理1.1.统一配置管理1.1.1.在nacos中添…

网站备案后内容小米发布会完整版

CSS语法 1. CSS语法格式 通常情况下语法格式如下: 选择器{属性名:属性值;属性名:属性值;属性名:属性值;... }2. CSS添加方式 2.1 行内样式 直接将样式写在本行的标签内。 <h1><p style"font-size: 48px; color:red;";>行内样式测试</p></…

制作投票的网站青岛网络seo公司

Flutter Boost 是一个 Flutter 插件&#xff0c;它可以帮助开发者在原生应用和 Flutter 应用之间无缝跳转。以下是一些基本步骤&#xff0c;展示了如何使用 Flutter Boost 从原生&#xff08;Native&#xff09;页面跳转到 Flutter 页面。 ### 1. 配置 Flutter Boost 在你的 …

网站的背景图怎么做的vi设计都包括什么

题目描述 一个非递减有序的整型数组有n个元素&#xff0c;给定一个整数num&#xff0c;将num插入该序列的适当位置&#xff0c;使序列仍保持非递减有序。 要求定义一个函数insert()&#xff0c;将整数num插入在数组a的适当位置上&#xff0c;函数原型如下&#xff1a; void …

建设网站宣传页做平面素材比较好的网站

操作截图 在Jenkins里面设置通过标签进行构建 在Jenkins中进入项目&#xff0c;配置以下 将execute shell换到invoke top-level maven targets之前 在gitlab中配置标签 代码迭代新的版本 项目代码迭代 修改docker-compose.yml 提交新版本的代码 在Jenkins中追加新…

怎么删除织梦做的网站小城镇建设网站参考文献

自定义指令&#xff1a; vue中通过directive方法自定义指令&#xff0c;如&#xff1a;自定义一个v-focus指令&#xff1a; <script>Vue.directive(focus, {//通过directive(指令名,{配置})注册全局指令inserted: function (el) {//inserted:表示当自定义指令插入元素后…

夺宝网站制作能自己做头像的网站

Hello&#xff0c;everyone&#xff1a;11月20日早&#xff0c;星期二CSDN一分钟新闻时间&#xff1a;小米与美图战略合作&#xff0c;将获得美图手机品牌和影像技术等全球独家授权 小米要收购美图的节奏&#xff1f; …

百度生成在线网站地图宁夏网站建设哪个好

目录 1.1、错误描述 1.2、解决方案 1.1、错误描述 最近遇到一个jasper报表线上预览出现死循环的问题&#xff0c;实施人员反馈&#xff0c;线上生产环境中&#xff0c;使用某个功能显示pdf的时候&#xff0c;出现了接口超时问题&#xff0c;在这个项目中&#xff0c;我们使用…

举报的网站是国外的域名和空间优设计网站

“低-零功率”概念最先由美国国防部提出&#xff0c;主要是针对诸如俄罗斯等大国的远程传感器&#xff0c;帮助美军破除“灰色地带挑衅”的威胁。由于“灰色地带”冲突仅依托小规模军事力量&#xff0c;其强度维持在不足以引发美国及其盟国进行直接干预的程度&#xff0c;因此&…

总资料汇总关联化站点形式的尝试(未完成)

归档用 总资料汇总&关联化站点形式的尝试 在原先的文章当中,我曾经稍微归整了一些关于自己资料,这里引用下原文梳理 | 脑神经科学原理学习资料整理 posted @ 2025-09-23 15:04 tokepson 阅读(16) 评论(0)在这…

8051指令集

以下是按照你提供的指令列表整理的完整表格,补充了机器周期数(基于8051默认12T模式,即1个机器周期=12个时钟周期),表格按机器码(Hex Code)顺序排列:Hex Code Bytes Mnemonic Operands Machine Cycles00 1 NOP …

不付费免费网站深圳影视广告公司收费

题目 在国际象棋的棋盘上,使一个骑士遍历所有的格子一遍且仅一遍。对于任意给定的顶点,输出一条符合上述要求的路径。骑士的走法和中国象棋的马的走法一样,走日。 解析 本题是一个经典的回溯搜索问题,具体来说是求解国际象棋棋盘上骑士的遍历问题,也称为骑士巡游问题(Kni…