編輯:關於Android編程
URL(Uniform Resource Locator)對象代表統一資源定位器,它是指向互聯網資源的指針。URL由協議名、主機、端口和資源路徑組件,即滿足如下格式:
protocol://host:port/path
例如http://kan.sogou.com/dianying/就是一個URL地址。
URL提供了多個構造方法用於創建URL對象,同時它提供的主要方法如下:
(1)String getFile():獲取此URL的資源名;
(2)String getHost():獲取此URL的主機名;
(3)String getPath():獲取此URL的路徑部分;
(4)String getProtocol():獲取此URL的協議名稱;
(5)String getQuery():獲取此URL的查詢字符串部分;
(6)URLConnection openConnection():返回一個URLConnection對象,它表示URL所引用的遠程對象與本進程的連接;
(7)InputStream openStream():打開與此URL的連接,並返回一個用於讀取該URL資源的InputStream;
下面以下載Baidu上的一張死神的圖片為例,示范如何使用URL:
layout文件很簡單,就兩個button和一個ImageView,就不貼上來了,下面是源碼:
public class MainActivity extends Activity implements View.OnClickListener{ private static final String PIC_URL=http://pic7.nipic.com/20100528/4981527_163140644317_2.jpg; private static final int SHOW_IMAGE=0x123; private static final int SAVE_SUCC=0x124; private static final int SAVE_ERROR=0x125; Button showImageButton,saveImageButton; ImageView imageView; Bitmap bitmap; private Handler handler=new Handler() { @Override public void handleMessage(Message msg) { if(msg.what==SHOW_IMAGE) { imageView.setImageBitmap(bitmap); } else if(msg.what==SAVE_SUCC) { Toast.makeText(getBaseContext(), 圖片保存成功, Toast.LENGTH_LONG).show(); } else if(msg.what==SAVE_ERROR) { Toast.makeText(getBaseContext(), 圖片保存出錯, Toast.LENGTH_LONG).show(); } } }; private void initView() { showImageButton=(Button)findViewById(R.id.showImageButton); saveImageButton=(Button)findViewById(R.id.saveImageButton); imageView=(ImageView)findViewById(R.id.imageView); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); showImageButton.setOnClickListener(this); saveImageButton.setOnClickListener(this); } @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; } private void showImage() { new Thread() { @Override public void run() { try { URL url = new URL(PIC_URL); InputStream is=url.openStream(); bitmap=BitmapFactory.decodeStream(is); handler.sendEmptyMessage(SHOW_IMAGE); is.close(); } catch(Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }.start(); } public void saveImage() { new Thread() { @Override public void run() { try { URL url=new URL(PIC_URL); InputStream is=url.openStream(); BufferedInputStream bis=new BufferedInputStream(is); String filePath=animation.png; FileOutputStream fos=getBaseContext().openFileOutput(filePath,MODE_PRIVATE); BufferedOutputStream bos=new BufferedOutputStream(fos); byte[]buff=new byte[32]; int hasRead=0; while((hasRead=bis.read(buff))>0) { bos.write(buff,0,hasRead); } bos.close(); fos.close(); bis.close(); is.close(); handler.sendEmptyMessage(SAVE_SUCC); } catch(Exception ex) { handler.sendEmptyMessage(SAVE_ERROR); ex.printStackTrace(); } } }.start(); } @Override public void onClick(View v) { // TODO Auto-generated method stub switch(v.getId()) { case R.id.showImageButton: showImage(); break; case R.id.saveImageButton: saveImage(); break; } } }
最近在機頂盒上做一個gridview,其焦點需要在item的子控件上,但gridview的焦點默認在item上,通過android:descendantFocusabil
Android ViewGroup中的Scroller與computeScroll的有什麼關系?答:沒有直接的關系知道了答案,是不是意味著下文就沒必要看了,如果說對Vie
1.ViewPager簡單使用ViewPager是android擴展包android.support.v4 裡的一個繼承與ViewGroup組件,通過布局管理器可以實現左
手勢有三個主要特征:手型,方向,運動軌跡一個基於視覺手勢識別系統的構成應包括:圖像的采集,預處理,特征提取和選擇,分類器的設計,以及手勢識別。其流程大致如下:上面識別過程