- 浏览: 279703 次
- 性别:
- 来自: 上海
-
文章分类
最新评论
-
flyingsnowff:
支付宝官方在线文档中心:https://doc.open.al ...
如何集成支付宝官方文档 -
timer_yin:
果然是这样
[转帖] 安装Eclipse插件长时间卡在 calculating requirements and dependencies -
dai_lm:
lyx0224 写道强~~~~~过奖,只是总结了前人的智慧,拼 ...
通过Wifi实现设备间的通信 -
lyx0224:
强~~~~~
通过Wifi实现设备间的通信 -
Goro:
帅!
自己封装的支持自动对焦的CameraView
更新方法啦
现在通过WebView来加载图片,由于WebView会自动从cache中读取已下载过的图片,所以可以有效的复用已有资源,而且不会增加额外的代码。
不过还是有一些小缺陷
1. 必须要在layout中设定图片要显示的大小
2. 有时会看到图片会缩小
以后有机会再改进吧。
自己做了个类,用来同步显示网络图片。
放到List里,好像也能正常工作,截图如下
完整sourse一并共享,希望对大家有用。
现在通过WebView来加载图片,由于WebView会自动从cache中读取已下载过的图片,所以可以有效的复用已有资源,而且不会增加额外的代码。
不过还是有一些小缺陷
1. 必须要在layout中设定图片要显示的大小
2. 有时会看到图片会缩小
以后有机会再改进吧。
import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Picture; import android.os.AsyncTask; import android.util.AttributeSet; import android.view.View; import android.webkit.WebSettings; import android.webkit.WebSettings.LayoutAlgorithm; import android.webkit.WebView; import android.webkit.WebView.PictureListener; import android.webkit.WebViewClient; import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.RelativeLayout; public class LoadImageSync extends RelativeLayout { private WebView mWebView; private ProgressBar mLoading; private ImageView mImage; public LoadImageSync(Context context) { this(context, null); } public LoadImageSync(Context context, AttributeSet attrs) { super(context, attrs); setupComponent(context); } private void setupComponent(Context context) { LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); params.addRule(RelativeLayout.CENTER_IN_PARENT); mLoading = new ProgressBar(context); mLoading.setLayoutParams(params); mLoading.setProgress(android.R.attr.progressBarStyleSmall); mImage = new ImageView(context); mImage.setLayoutParams(params); mWebView = new WebView(context); mWebView.setBackgroundColor(0); mWebView.setScrollBarStyle(0); mWebView.setLayoutParams(params); mWebView.setWebViewClient(new LoadImageWebViewClient()); mWebView.setPictureListener(picListener); WebSettings webSettings = mWebView.getSettings(); webSettings.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); removeAllViews(); addView(mLoading); addView(mWebView); addView(mImage); } public void setImageUrl(String url) { load(url); } private void load(String url) { new AsyncTask<String, Void, Void>() { @Override protected Void doInBackground(String... params) { String url = params[0]; mWebView.loadDataWithBaseURL(null, getHtmlContent(url, mWebView), "text/html", "utf-8", null); return null; } }.execute(url); } private String getHtmlContent(String imageUrl, WebView view) { StringBuffer sb = new StringBuffer(); sb.append("<center>"); sb.append("<img width=\"100%\" src=\"" + imageUrl + "\" />"); sb.append("</center>"); return sb.toString(); } private class LoadImageWebViewClient extends WebViewClient { @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { mLoading.setVisibility(View.GONE); } @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { mLoading.setVisibility(View.VISIBLE); mWebView.setVisibility(View.GONE); mImage.setVisibility(View.GONE); } @Override public void onPageFinished(WebView view, String url) { mWebView.setVisibility(View.VISIBLE); mWebView.setHorizontalScrollBarEnabled(false); mWebView.setVerticalScrollBarEnabled(false); mLoading.setVisibility(View.GONE); } } PictureListener picListener = new PictureListener() { public void onNewPicture(WebView view, Picture picture) { Picture pic = mWebView.capturePicture(); int w = pic.getWidth(); int h = pic.getHeight(); Bitmap b = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888); final Canvas c = new Canvas(b); view.draw(c); mWebView.setVisibility(View.GONE); mImage.setImageBitmap(b); mImage.setVisibility(View.VISIBLE); } }; }
自己做了个类,用来同步显示网络图片。
放到List里,好像也能正常工作,截图如下

完整sourse一并共享,希望对大家有用。
- SyncImages.rar (11.8 KB)
- 下载次数: 93
- commons-httpclient-3.1.jar (297.9 KB)
- 下载次数: 56
- LoadImageSync.rar (8 KB)
- 下载次数: 2
发表评论
-
获取Android Device的信息
2013-12-26 15:47 1519String phoneInfo = "PROD ... -
看雪学院-Android安全
2013-11-25 09:40 1005http://bbs.pediy.com/forumdispl ... -
Toast原来也可以多样化
2013-09-18 13:48 1231Style 1: 默认 Toast def = Toast ... -
Google Map API V2
2013-05-13 13:37 2275以后如果要开发包含google map的程序就更麻烦咯 htt ... -
用OpenGL实现无限循环的coverflow
2013-04-26 14:16 4921网上找了很久,都是用Gallery实现的,效果不是很满意,结果 ... -
如何集成支付宝官方文档
2013-02-08 11:24 4566官方文档下载地址 https://b.alipay.com/o ... -
[转帖]裁剪图片
2013-01-30 17:22 1006原帖:http://www.linuxidc.com/Linu ... -
MonkeyRunner的使用
2013-01-29 13:06 9758要使用MonkeyRunner,就要 ... -
重复执行某段代码
2012-12-29 14:36 1643用handler就可以了 private Handler ... -
选择音频的输出方式
2012-12-12 15:00 2014可以选择用耳机还是扬声器播放(蓝牙的就留到下次吧),要求SDK ... -
使FrameLayout的Gravity等于Center
2012-12-06 16:42 1793由于无法设置FrameLayout的Gravity,所以只能通 ... -
在Android上模拟MetroUI
2012-10-31 15:49 2691在Android上模拟WP7的MetroUI MetroIt ... -
Uri.Builder与String互转
2012-08-14 15:56 2398Uri.Builder -> String Uri. ... -
判断屏幕尺寸
2012-07-17 10:21 1920// support from API 4 final ... -
自己封装的支持自动对焦的CameraView
2012-07-12 13:52 3738import java.io.BufferedOutp ... -
ADT 离线包下载地址
2012-07-06 14:32 2128更新ADT真是件苦恼的事啊 20.0.0的下载地址 http ... -
通过Wifi实现设备间的通信
2012-06-05 15:19 2118服务器端,建立监听(方法更新,可以同时连接多个Client) ... -
IP地址的获取及解析
2012-06-05 13:31 1308获取IP地址 WifiManager wifiManage ... -
判断网络是否有效
2012-05-28 17:32 1016protected boolean isInternetA ... -
悬浮窗
2012-05-28 17:21 3154类似于360监视网络速度的那个悬浮窗 public cl ...
相关推荐
在Android开发中,将网络上的图片下载并显示到ListView中是一项常见的需求,这涉及到网络请求、数据处理、UI渲染等多个技术点。以下是一份详细的步骤和技术解析: 首先,我们需要使用HTTP客户端库来发送网络请求...
在WPF(Windows Presentation Foundation)应用开发中,异步加载图片是一项重要的技术,尤其是在处理大量或者网络图片时,能够显著提升用户体验,防止UI线程阻塞。本篇将深入探讨如何在WPF中实现异步加载图片,并...
在“java的一些图片,网络编程,多线程,数据结构”这个主题中,我们可以深入探讨以下几个重要的Java编程知识点: 1. **Java 图片处理**: Java提供了多种处理图像的API,如`java.awt.image`和`javax.imageio`包。...
Image控件的Source属性用于设置图片源,可以是本地文件路径、网络URL或资源。例如: ```xml ``` 3. **计时器**: 为了实现图片自动播放,我们需要用到计时器。WPF中没有内置的计时器控件,但我们可以使用...
ListCtrl控件通常在对话框或视图类中使用,提供类似表格的布局,可以显示多列数据,并且支持多种自定义样式和功能,如图标、复选框等。在“yhe.rar”压缩包中,包含了一个名为“anybodyux8”的项目,该项目可能是一...
6. **处理网络错误**:`ImageLoader`提供了异常处理机制,当图片加载失败时,可以显示默认图片或处理错误。 通过以上步骤,我们成功地在ListView中使用`ImageLoader`框架加载了图片。这个框架不仅提高了图片加载的...
Android提供了多种方式显示图片,如直接使用`ImageView`加载本地资源,或者使用Glide、Picasso等第三方库加载网络图片。这里以Glide为例,它简化了图片加载过程: ```java Glide.with(context) .load(file....
这些库可以方便地从网络下载图片并显示在UI上,同时支持图片的压缩和缓存,以减少内存占用和提高性能。 5. **OkHttp集成**:Retrofit底层默认使用OkHttp作为网络请求库,OkHttp提供了高效的连接池和缓存机制,能够...
Glide是一个强大的图片加载库,它优化了图片的加载过程,提供了平滑的滚动体验,同时支持多种图片格式和网络加载。在这个入门例子中,我们将学习如何利用Glide在ListView中加载和显示图片。 1. **Glide简介** ...
- 图片显示:使用Glide或Picasso库加载网络图片,处理缓存和占位符。 4. **语音录制与播放**: - 录音:利用Android的MediaRecorder类,设置录音参数,如采样率、编码格式等,实现语音录制。 - 文件存储:将录制...
在这样的背景下,"同步切换"功能意味着该软件或服务能够根据网络条件自动或手动在WAP1.0和WAP2.0之间切换,确保用户无论在网络覆盖较弱还是较强的地方都能获得稳定的服务。 从压缩包文件的名称来看,我们可以推测这...
8. **数据同步**:如果应用需要实时更新好友列表,可能需要实现后台数据同步功能,例如使用`AsyncTask`或者`Retrofit`进行网络请求,获取最新的好友信息并更新到`ExpandableListView`。 通过以上步骤,你可以实现一...
4. 客户端接收到响应,使用GSON将JSON数据解析成Java对象,例如一个包含多条图片信息的List。 5. 解析后的数据可以显示在UI上,比如在一个RecyclerView中展示图片预览和相关描述。 6. 用户点击图片后,可能会展开大...
6. **样式设计与响应式布局**:使用WXSS编写适应不同设备和屏幕尺寸的样式规则,确保应用在不同设备上都有良好的显示效果。 7. **调试与发布**:学会使用微信开发者工具进行调试和预览,了解发布流程和配置要求。 ...
在这个项目中,我们看到涉及了多个与音乐播放器相关的技术点,包括本地服务器配置、下载列表管理、歌手头像同步显示、远程下载、本地播放、播放列表操作以及播放控制和同步歌词显示。下面将对这些知识点进行详细介绍...
这里,`imageView`是你想要显示图片的ImageView,`imageUrl`是图片的URL,`placeholder`是加载中的占位图,`ic_dialog_alert`是加载失败时的图标。 如果网页中的图片链接是相对路径,需要将其转换为绝对路径。可以...
3. **歌词显示**:音乐播放器的歌词同步功能是现代播放器的常见特性。开发者需要集成歌词文件解析库,如LRC格式,将歌词与音乐时间轴匹配。C#可以利用字符串操作和时间戳处理来实现实时滚动的歌词效果。 4. **播放...
在这个例子中,我们可能需要显示图片,所以可以使用`ImageView`来显示图片,并利用`Glide`或`Picasso`等图片加载库来加载网络资源: ```java public class CarouselAdapter extends BaseAdapter { private Context ...