編輯:關於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;
}
}
}

Android開發之機頂盒上gridview和ScrollView的使用詳解
最近在機頂盒上做一個gridview,其焦點需要在item的子控件上,但gridview的焦點默認在item上,通過android:descendantFocusabil
詳解Android Scroller與computeScroll的調用機制關系
Android ViewGroup中的Scroller與computeScroll的有什麼關系?答:沒有直接的關系知道了答案,是不是意味著下文就沒必要看了,如果說對Vie
android界面開發:ViewPager的詳解,並用於仿微博滑動實例和圖片滾動實例
1.ViewPager簡單使用ViewPager是android擴展包android.support.v4 裡的一個繼承與ViewGroup組件,通過布局管理器可以實現左
手勢識別(二)--單目手勢識別算法總結
手勢有三個主要特征:手型,方向,運動軌跡一個基於視覺手勢識別系統的構成應包括:圖像的采集,預處理,特征提取和選擇,分類器的設計,以及手勢識別。其流程大致如下:上面識別過程