Linux教程網
網絡圖片查看器
清單文加入網絡訪問權限:
- |<!-- 訪問internet權限 -->
- <uses-permission Android:name="android.permission.INTERNET"/>
界面如下:
示例:
- public class MainActivity extends Activity {
- private EditText imagepath;
- private ImageView imageView;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
-
- imagepath = (EditText) this.findViewById(R.id.imagepath);
- imageView = (ImageView) this.findViewById(R.id.imageView);
-
- Button button = (Button) this.findViewById(R.id.button);
- button.setOnClickListener(new View.OnClickListener() {
- public void onClick(View v) {
- String path = imagepath.getText().toString();
- try{
- byte[] data = ImageService.getImage(path);//獲取圖片數據
- if(data!=null){
- //構建位圖對象
- Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
- imageView.setImageBitmap(bitmap);//顯示圖片
- }else{
- Toast.makeText(getApplicationContext(), R.string.error, 1).show();
- }
- }catch (Exception e) {
- Toast.makeText(getApplicationContext(), R.string.error, 1).show();
- }
- }
- });
- }
- }
- public class ImageService {
- /**
- * 獲取圖片
- * @param path 網絡圖片路徑
- * @return 圖片的字節數據
- */
- public static byte[] getImage(String path) throws Exception{
- URL url = new URL(path);
- HttpURLConnection conn = (HttpURLConnection) url.openConnection();
- //設置超時時間
- conn.setConnectTimeout(5000);
- conn.setRequestMethod("GET");
- if(conn.getResponseCode()==200){
- InputStream inStream = conn.getInputStream();
- byte[] data = StreamTool.read(inStream);
- return data;
- }
- return null;
- }
- }
- <span style="FONT-WEIGHT: normal">public class StreamTool {
- /**
- * 讀取輸入流數據
- * @param inStream
- * @return
- */
- public static byte[] read(InputStream inStream) throws Exception{
- ByteArrayOutputStream outStream = new ByteArrayOutputStream();
- byte[] buffer = new byte[1024];
- int len = 0;
- while( (len = inStream.read(buffer)) != -1 ){
- outStream.write(buffer, 0, len);
- }
- inStream.close();
- return outStream.toByteArray();
- }
- }
Copyright ©
Linux教程網 All Rights Reserved