編輯:關於Android編程
在寫這篇博文的時候,我參與了一個項目的開發,裡面涉及了很多網絡調用相關的問題,我記得我在剛剛開始做android項目的時候,曾經就遇到這個問題,當時在網上搜索了一下,發現了一篇博文,現在與大家分享一下,http://www.open-open.com/lib/view/open1376128628881.html
其實這篇文章的思想是有問題的,因為網絡是需要不斷的輪詢訪問的,所以必須要放在線程中,而不應該直接放在onCreate方法中,我對這段程序進行了一定的修改,將它們放在線程中更新就可以了。
這個事MainActivity.java的代碼:
package com.test.picture;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.widget.ImageView;
public class MainActivity extends Activity {
private ImageView imageView;
private String picturePath = "http://content.52pk.com/files/100623/2230_102437_1_lit.jpg";
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
final Bitmap bitmap = returnBitMap(picturePath);
imageView.post(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
imageView.setImageBitmap(bitmap);
}
});
}
}).start();
}
private 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;
}
private void initView() {
imageView = (ImageView) findViewById(R.id.picture);
}
}
我們在MainActivity.java中的onCreate方法中創建了一個新的線程,但是我們也明白不可以在非UI線程中操作用戶界面,那麼我們不可以直接在新的線程中操作UI,所以我們還要將改變post到UI線程中去。
上面的方法運行時沒有問題的,謝謝大家。
android動畫——屬性動畫(Property Animation)
相對與視圖動畫 ,屬性動畫(android3.0提出的) 使用條件:完全彌補了View anim System的缺陷,你可以為一個對象的任何屬性添加動畫,(View或者非
Android實現通訊錄效果——獲取手機號碼和姓名
首先給大家展示下運行效果圖:由於通訊錄在手機裡是以數據庫貯存的 所以我們可以通過一個方法context.getContentResolver().query(Phone.
Android數據庫 之 SQLite數據庫
一、關系型數據庫SQLIte 每個應用程序都要使用數據,Android應用程序也不例外,Android使用開源的、與操作系統無關的SQL數據庫&
微信公眾號 微信公眾號怎麼申請 微信公眾號申請 微信公眾賬號申請
微信公眾號是微信公眾平台下的一個小分支,有信息推廣推送的功能,公眾號每天定時的推送相關文章或者相關活動內容,讓用戶及時了解最新動態!那麼微信公眾號怎麼申請?