当前位置:首页 » 安卓系统 » android服务器获取图片

android服务器获取图片

发布时间: 2023-01-20 20:37:51

‘壹’ 怎么让: Android上读取服务器端的图片(服务器从数据库中取图片地址给Android)

第一、图片地址,就是你本地图片地址,服务器要取出数据,总得有个路径吧。图片放到服务器方便访问就行
第二、你在pc上用浏览器咋访问就咋访问呀,就是网络地址
第三、listview的显示网上很多的,我就没有必要跟你多说了

‘贰’ 请问android怎样通过json数据从服务器获取图片

直接获取是不行的,要有一个文件服务器,对于文件服务器会为每个图片生成一个资源路径,然后json数据中返回的就是这个资源路径,最后用URL类就可以通过这个资源路径把图片download下来

‘叁’ 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如何从服务器取多张图片,在本地保存并显示

//获取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 如何获取远程文件的内所有图片

大家都知道,在android应用中UI线程5秒没响应的话就会抛出无响应异常,对于远程获取大的资源来说,这种异常还是很容易就会抛出来的,那么怎么避免这种问题的产生。在android中提供两种方法来做这件事情:
启动一个新的线程来获取资源,完成后通过Handler机制发送消息,并在UI线程中处理消息,从而达到在异步线程中获取图片,然后通过Handler Message来更新UI线程的过程。
使用android中提供的AsyncTask来完成。

具体的做法这里就不介绍了,查下API就可以了,或者是google、下。这里主要来说本地缓存
本地缓存
对于图片资源来说,你不可能让应用每次获取的时候都重新到远程去下载(ListView),这样会浪费资源,但是你又不能让所有图片资源都放到内存中去(虽然这样加载会比较快),因为图片资源往往会占用很大的内存空间,容易导致OOM。那么如果下载下来的图片保存到SDCard中,下次直接从SDCard上去获取呢?这也是一种做法,我看了下,还是有不少应用采用这种方式的。采用LRU等一些算法可以保证sdcard被占用的空间只有一小部分,这样既保证了图片的加载、节省了流量、又使SDCard的空间只占用了一小部分。另外一种做法是资源直接保存在内存中,然后设置过期时间和LRU规则。
sdcard保存:

在sdcard上开辟一定的空间,需要先判断sdcard上剩余空间是否足够,如果足够的话就可以开辟一些空间,比如10M
当需要获取图片时,就先从sdcard上的目录中去找,如果找到的话,使用该图片,并更新图片最后被使用的时间。如果找不到,通过URL去download
去服务器端下载图片,如果下载成功了,放入到sdcard上,并使用,如果失败了,应该有重试机制。比如3次。
下载成功后保存到sdcard上,需要先判断10M空间是否已经用完,如果没有用完就保存,如果空间不足就根据LRU规则删除一些最近没有被用户的资源。
关键代码:
保存图片到SD卡上

‘陆’ android 存在数据库中的动态图片,如何读取出来,显示在ImageView中

实现的功能为从服务器获取图片数据,在布局页面上显示。由于图片的个数是不确定的,因此采用在布局页面中定义多个ImageView来显示图片是不合理的。
(一)首先定义布局

android:id="@+id/id_layout_movie"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
(二)加载图片显示时获取到布局文件
RelativeLayout rl_Movie = (RelativeLayout) findViewById(R.id.id_layout_movie);
(三)依次循环服务器获取的图片数据,一张一张设置图片显示的位置
//newWidth为图片显示的宽度,newHeight为图片显示的高度
RelativeLayout.LayoutParams lp1 = new RelativeLayout.LayoutParams( newWidth, newHeight);
设置lp1.leftMargin和lp1.topMargin的值
(四)最后设置rl_Movie.addView(iv, lp1)将图片加入布局文件中

‘柒’ android 从服务器端获取图片,有的图片太大了,要压缩,但我不知道要压缩到什么样的尺寸合适。

根据你的imageiew大小来定,同时要注意长宽比
如果原图的长宽比大于你的imageiew的长宽比,按长度的比例来缩放
反之按宽度来
如果正好相等,那么哪一个都可以了。

‘捌’ android 网络图片查看器 无法获取服务器上的图片

你直接在手机的浏览器里面输入这个地址也可以显示出这个图片吗?
先怀疑一种可能性:你的手机上网方式不和电脑在一个局域网内部,也就是说不能通过192.168.***来访问你自己服务器上的图片,你可以先换一张公共网络图片的地址来调试。

热点内容
网盘存储文件 发布:2025-05-20 05:32:05 浏览:244
linux网卡的mac 发布:2025-05-20 05:31:13 浏览:6
手机照相机文件夹 发布:2025-05-20 05:29:49 浏览:847
数控车床电脑编程软件 发布:2025-05-20 05:29:42 浏览:965
智能pos如何下载安卓 发布:2025-05-20 05:29:08 浏览:342
防病毒源码 发布:2025-05-20 05:25:00 浏览:926
小米自动上传 发布:2025-05-20 05:06:06 浏览:624
王者荣耀引流脚本 发布:2025-05-20 05:06:03 浏览:485
无人深空pc需要什么配置 发布:2025-05-20 04:55:17 浏览:614
可编程式恒温恒湿试验箱 发布:2025-05-20 04:54:34 浏览:367