android伺服器獲取圖片
『壹』 怎麼讓: 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.***來訪問你自己伺服器上的圖片,你可以先換一張公共網路圖片的地址來調試。