① 请问android怎样通过json数据从服务器获取图片
android里面,通过json数据是不会直接返回图片的,只会返回图片的url地址。
步骤: 1,通过解析json数据,获取到图片的地址。
2,通过图片的地址,再一次的请求网络(用异步任务或者hangdler里面请求网络:比如:
URL url = new URL(urlStr);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
BufferedInputStream is = new BufferedInputStream(conn.getInputStream());
)
3 通过BitmapFactory.decodeStream(里面的参数是一个字节流),该方法返回的是一个bitmap ,直接用imageview.setimagebitmap()就能展示图片了。
说明: 在BitmapFactory.decodeStream这里返回的bitmap可以做进一步的优化,比如二次采样,把获取的bitmap存sd卡等等。。
② android怎么把服务器端的图片拿过来服务器是电脑.怎么做呢
android中获取网络图片,一般采用http的方式,是一件耗时的操作,如果直接获取有可能会出现应用程序无响应(ANR:Application Not Responding)对话框的情况。对于这种情况,一般的方法就是耗时操作用线程来实现。下面列三种获取url图片的方法:
1.直接获取:
缺陷:此方式是直接在主线中做了耗时操作,严重影响app性能,很可能造成ANR
优点:代码简单,通俗易懂
核心的android代码 :
mImageView = (ImageView)this.findViewById(R.id.imageThreadConcept) ;
Drawable drawable = loadImageFromNetwork(IMAGE_URL);
mImageView.setImageDrawable(drawable) ;
//
private Drawable loadImageFromNetwork(String imageUrl)
{
Drawable drawable = null;
try {
// 可以在这里通过文件名来判断,是否本地有此图片
drawable = Drawable.createFromStream(
new URL(imageUrl).openStream(), "image.jpg");
} catch (IOException e) {
Log.d("test", e.getMessage());
}
if (drawable == null) {
Log.d("test", "null drawable");
} else {
Log.d("test", "not null drawable");
}
return drawable ;
}
2. 后台线程获取url图片:
优点:将耗时操作放在异步线程,提高app性能
缺陷:由于操作界面需要在主线程中进行,造成主线程与异步线程频繁切换。代码复杂难懂
核心android代码
mImageView = (ImageView)this.findViewById(R.id.imageThreadConcept) ;
final Handler handler = xxxxxxx;
new Thread(new Runnable(){
Drawable drawable = null;
@Override
public void run() {
// post() 特别关键,就是到UI主线程去更新图片
mImageView.post(new Runnable(){
@Override
public void run() {
drawable = loadImageFromNetwork(IMAGE_URL);
//采用Handler将drawable post到主线程,然后在主线程中调用代码 //mImageView.setImageDrawable(drawable) ;
}}) ;
}
}).start() ;
3.AsyncTask获取url图片
优点:此方式时android官方推荐,性能方面集合了第二种方式。建议采用
缺陷:用此方式时,需要对AsyncTask的原理有一定了解
Java代码
mImageView = (ImageView)this.findViewById(R.id.imageThreadConcept) ;
new DownloadImageTask().execute(IMAGE_URL) ;
private class DownloadImageTask extends AsyncTask<String, Void, Drawable>
{
protected Drawable doInBackground(String... urls) {
return loadImageFromNetwork(urls[0]);
}
protected void onPostExecute(Drawable result) {
mImageView.setImageDrawable(result);
}
}
③ android如何加载服务器某磁盘文件夹的图片
从服务器获取图片列表
后台线程逐个下载图片
将下载的图片添加到当前要显示的页面上。
其中第2步可以加载到第3步中,边显示边下载。
④ Android如何从服务器获取图片
直接获取bitmap对象
//传输网络图片
publicBitmapgetPic(StringuriPic){
URLimageUrl=null;
Bitmapbitmap=null;
try{
imageUrl=newURL(uriPic);
}catch(MalformedURLExceptione){
e.printStackTrace();
}
try{
HttpURLConnectionconn=(HttpURLConnection)imageUrl
.openConnection();
conn.connect();
InputStreamis=conn.getInputStream();
bitmap=BitmapFactory.decodeStream(is);
is.close();
}catch(IOExceptione){
e.printStackTrace();
}
returnbitmap;
}
⑤ android 网络图片查看器 无法获取服务器上的图片
你直接在手机的浏览器里面输入这个地址也可以显示出这个图片吗?
先怀疑一种可能性:你的手机上网方式不和电脑在一个局域网内部,也就是说不能通过192.168.***来访问你自己服务器上的图片,你可以先换一张公共网络图片的地址来调试。
⑥ android如何从服务器取多张图片,在本地保存并显示
//获取connection conn = getURLConnection(url); is = conn.getInputStream(); //获取Bitmap的引用 Bitmap bitmap = BitmapFactory.decodeStream(is) //获取长度 int length = (int) conn.getContentLength(); if (length != -1) { byte[] imgData = new byte[length]; byte[] temp=new byte[512]; int readLen=0; int destPos=0; while((readLen=is.read(temp))>0){ System.array(temp, 0, imgData, destPos, readLen); destPos+=readLen; } bitmap=BitmapFactory.decodeByteArray(imgData, 0, imgData.length); }可能想得不是很完善,你可以参考参考。
⑦ android怎么通过httpclient方式获取服务器中的图片并显示到viewfillpper
第1步,在开始菜单中依次单击“管理工具”→DNS菜单项,打开dnsmgmt窗口。在左窗格中右键单击服务器名称,选择“配置DNS服务器”命令。
第2步,打开“配置DNS服务器向导”对话框,在欢迎对话框中单击“下一步”按钮。打开“选择配置操作”对话框,在默认情况下适合小型网络使用的“创建正向查找区域”单选框处于选中状态。保持默认设置并单击“下一步”按钮。
小提示:上述步骤创建的正向查找区域是指将域名解析为IP地址的过程。即当用户输入某个域名时,借助于该记录可以将域名解析为IP地址,从而实现对服务器的访问。
第3步,打开“主服务器位置”对话框,选中“这台服务器维护该区域”单选框,并单击“下一步”按钮。
⑧ android开发中读取远程服务器端的.png图片读取不到.jpg没有问题
可以试试把png转成jpg,图片路径和名称都不要改。如果可以那就是服务器问题