Android非同步顯示網路上的圖片(使用Handler)
由於android4.0之後不允許在主執行緒中進行網路才操作,在學習過程中不知道這點,導致發生了比較蛋疼的事情,本人菜鳥一個,知識水平很有限,利用Handler 傳送訊息傳遞下載的圖片資源,並在UI介面中予以顯示。
package com.example.ko.ok;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
public class MainActivity extends Activity {
Button btn;
String imageUrl = "http://imgstatic.baidu.com/img/image/shouye/qinchunmeinv0808.jpg"; ;
Bitmap bmImg;
ImageView im;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
im=(ImageView)findViewById(R.id.imageView1);
btn=(Button)findViewById(R.id.button1);
final Handler handler=new Handler(){
public void handleMessage(Message msg)
{
bmImg=(Bitmap)msg.obj;
im.setImageBitmap(bmImg);
}
};
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
btn.setText("徐昕");
imageUrl="http://bbs.dvbbs.net/UploadFile/2012-5/201253120192839760.gif";
new Thread("oo"){
public void run()
{
Message msg=new Message();
msg.obj=returnBitMap(imageUrl);
handler.sendMessage(msg);
}
}.start();
}
});
new Thread("oo"){
public void run()
{
Message msg=new Message();
msg.obj=returnBitMap(imageUrl);
handler.sendMessage(msg);
}
}.start();
}
public Bitmap returnBitMap(String url) {
URL myFileUrl = null;
Bitmap bitmap = null;
try {
myFileUrl = new URL(url);
} catch (MalformedURLException e) {
e.printStackTrace();
}
try {
HttpURLConnection conn = (HttpURLConnection) myFileUrl
.openConnection();
conn.setDoInput(true);
conn.connect();
InputStream is = conn.getInputStream();
bitmap = BitmapFactory.decodeStream(is);
is.close();
} catch (IOException e) {
e.printStackTrace();
}
return bitmap;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
相關推薦
Android非同步顯示網路上的圖片(使用Handler)
由於android4.0之後不允許在主執行緒中進行網路才操作,在學習過程中不知道這點,導致發生了比較蛋疼的事情,本人菜鳥一個,知識水平很有限,利用Handler 傳送訊息傳遞下載的圖片資源,並在UI介面中予以顯示。 package com.example.ko.ok; i
Android有效地展示大圖片(三)
圖片快取 只下載一張圖片在你的UI上時非常簡單的。但是如果你需要一次性下很多圖片就不這麼容易了。在很多情況下(比如ListView,GridView或者是ViewPager),要展示在螢幕上的圖片加上即將要展示的圖片,這個數量可是沒有什麼大小限制的。 以上提到的控制元件,為了
Android 有效的展示大圖片(四)
下面是Android對bitmap的記憶體管理的進化過程: 在Android2.2之前的版本中,當垃圾回收執行緒開始時,你的app的執行緒就會掛起。這就會導致使用者體驗降級。Android2.3之後使得垃圾回收機制可以併發執行。這也就意味著當一個bitmap沒有指向自己的引用時,可以被垃圾回收機
Android VideoView播放網路視訊簡介(轉)
最近專案中用到了很多視訊播放的地方,不管是聊天傳送的視訊訊息,還是類似內涵段子的視訊列表,都會涉及這些知識,不過網上的知識都很零散,一會找快取方法,一會找預覽圖片的方法,一會找視訊動態修改尺寸的方法,總之找的人好煩,所以自己寫一篇來記錄這些知識點,也方便別人查閱 獲取視訊首幀當預覽圖(MediaMetada
Android基礎-獲取網路上的圖片並顯示
android手機和瀏覽器也是一樣的,也可以通過網路通訊獲取資料,如呼叫webservice,EJB等。下面就通過一個小例子從網路獲取一幅圖片並顯示在手機上,開發中將會使用到一個新的元件ImageView. 設計效果圖: 1.在AndroidManife
Android 非同步載入網路圖片到ImageView (Hnadler)
首先建立一個Handler private Handler handler=new Handler(){ @Override public void handleMessage(Mes
android 在圖片(bitmap)上畫矩形框,並顯示
private void drawRectangles(Bitmap imageBitmap, int[] keywordRects,int[] valueRects) {int left, top, right, bottom;Bitmap mutableBitmap = imageBitmap.copy(
ueditor單圖片(simpleupload)上傳,設置其 width:100%,height:auto。以適應各種屏幕大小顯示
適應 () 技術 width png 屏幕大小 bsp 代碼 操作 打開ueditor.all.js,按下圖操作(修改後註意清緩存): 附上待搜索的關鍵字:function callback() 附上代碼 loader.setAttribute(‘width‘
angularjs手機webapp 利用input拍照,相簿選擇、縮圖顯示 上傳圖片(一)
執行後的截圖: html程式碼 <ul class="list_img"> <li ng-repeat="imageSrc in imgshows track by $index"> <img n
OKHttp get同步請求網路+post非同步請求網路+上傳圖片
導依賴 implementation 'com.squareup.okhttp3:okhttp:3.11.0' implementation 'com.squareup.okhttp3:logging-interceptor:3.11.0' public
Android中GridView以表格形式顯示多張圖片(仿桌面)
GridView可以理解為顯示多列的ListView,這次就利用GridView做一個仿桌面的案例。GridView和ListView的使用相同,都基本使用以下三步走:設定資料來源,設定介面卡,
android 新增視訊、圖片、錄音上傳(一)
實現一個功能,上報資訊,可以新增視訊、圖片、錄音。呼叫系統相機,所以每次只能選擇一張圖片。 //拍照 add_photo.setOnClickListener(new View.OnClickListener() {
Android非同步載入網路圖片
Android圖片的非同步載入,主要原理: 載入圖片時先檢視快取中時候存在該圖片,如果存在則返回該圖片,否則先載入載一個預設的佔位圖片,同時建立一個通過網路獲取圖片的任務並新增,任務完成後放鬆訊息給主執行緒更新介面。 使用方法: Asyn
Android 非同步獲取網路圖片Bitmap資源
這裡主要是為了把獲取圖片的程式碼單獨出來和UI分開,方便擴充套件。 public interface Callback<T> { public void onSuccess(T o
android 新增視訊、圖片、錄音上傳(三)
接上,上傳新增的視訊、圖片、音訊檔案。之前做的是在新增完檔案後就立即上傳,返回id,將id儲存到任務中。會出現在檔案沒有上傳完,就儲存任務,而沒有檔案id。改成先新增任務,上傳檔案時帶著任務id引數。 //新增檔案 commitFile.set
freemarker+springMVC+ajaxfileupload實現非同步圖片上傳(單張)
第一步:下載JQuery的JS檔案ajaxfileupload.js 並引入到freemarker 第二步:freemarker頁面 <span style="font-size:18px;"><!DOCTYPE html> <html l
【原創】源碼角度分析Android的消息機制系列(六)——Handler的工作原理
urn long empty isa pat stat 開啟 it is performed ι 版權聲明:本文為博主原創文章,未經博主允許不得轉載。 先看Handler的定義: /** * A Handler allows you to send and proc
HTML5+Canvas+jQuery調用手機拍照功能實現圖片上傳(二)
customer mkdir 狀態保存 ont false lan else if 項目 action 上一篇僅僅講到前臺操作,這篇專門涉及到Java後臺處理。前臺通過Ajax提交將Base64編碼過的圖片數據信息傳到Java後臺,然後Java這邊進行接收處理。通過
HTML5 file API加canvas實現圖片前端JS壓縮並上傳 (轉載)
www. 手機 回調 pre lan 瀏覽器中 rdp 效果 二進制 一、圖片上傳前端壓縮的現實意義 對於大尺寸圖片的上傳,在前端進行壓縮除了省流量外,最大的意義是極大的提高了用戶體驗。 這種體驗包括兩方面: 由於上傳圖片尺寸比較小,因此上傳速度會比較快,交互會更
上傳圖片(photoClip)
center opacity pla utl ack right nbsp static border 首先我們需要引入4個js包(這4個包總共106.6KB) <script src="__STATIC__/hammer.min.js" ></scri