編輯:關於Android編程
在Android中可以通過handler方法完成數據的線程間的傳遞,但一定要將handler得到的數據通過loop傳遞到主線程再更新UI嗎?其實也可以直接使用handler設計的post方法進行實現,handler的post方法是在主線程運行的,可以直接進行UI的更新操作。
MainActivity的代碼
package com.example.e15_handler_post; import java.io.ByteArrayOutputStream; 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.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.util.Log; import android.view.Menu; import android.widget.ImageView; public class MainActivity extends Activity { private ImageView imageView; private Handler myhandler=new Handler(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imageView=(ImageView)this.findViewById(R.id.imageView1); new MyThread().start(); } @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; } public class MyThread extends Thread{ byte[] data=new byte[1024]; int len=0; @Override public void run() { // TODO Auto-generated method stub try { URL url=new URL("http://111.0.229.223:8080/http/hangzhou.jpg"); try { HttpURLConnection connection=(HttpURLConnection) url.openConnection(); InputStream inputStream=connection.getInputStream(); ByteArrayOutputStream arrayOutputStream=new ByteArrayOutputStream(); while((len=inputStream.read(data))!=-1){ arrayOutputStream.write(data, 0, len); } data=arrayOutputStream.toByteArray(); Log.i("info", "------->"+data.length); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } Runnable runnable=new Runnable() { @Override public void run() { // TODO Auto-generated method stub Bitmap bm=BitmapFactory.decodeByteArray(data, 0,data.length ); imageView.setImageBitmap(bm); } }; myhandler.post(runnable); } } }
QQ5.0側滑效果實現方案有很多方式,今天我們使用ViewDragHelper來實現一下。先上效果圖:①自定義控件SlidingMenu繼承FrameLayout,放在F
這節課將會介紹如何隱藏不同的版本的狀態條。隱藏狀態條可以使內容展示區域更大,因此可以提供一種更強的身臨其境的用戶體驗。含有狀態條的APP:隱藏狀態條的APP,注意這裡的A
效果圖: .java文件有MainActivity.java、FileService.java、FileServiceTest.java, .xml文
Intent組件雖然不是四大組件,但卻是連接四大組件的橋梁,學習好這個知識,也非常的重要。一、什麼是Intent1、Intent的概念:Android中提供了Intent