当前位置:  编程技术>移动开发
本页文章导读:
    ▪andriod 中上载图片到sdcard中例子        andriod 中下载图片到sdcard中例子 Android实现下载图片并保存到SD卡中 收藏 1.java代码,下载图片的主程序 先实现显示图片,然后点击下载图片按钮,执行下载功能。 view plaincopy to clipboardprint?.........
    ▪ 创设sdcard        创建sdcard 最近在做一个下载附件的小项目需要用到sdcard,在看了几位大神的文章之后我也把创建sdcard的步骤记录下来 创建SDCard可以在Eclipse创建模拟器时随同创建,也可以使用DOS命令进行创.........
    ▪ 【6.9】Activity跟Task       【6.9】Activity和Task Task,是一系列用栈的形式表示的Activity的组合。   <activity><launchMode>属性,可以对这种栈的形式作一些改变,有以下四个值   standard(默认) singleTop singleTask singl.........

[1]andriod 中上载图片到sdcard中例子
    来源: 互联网  发布时间: 2014-02-18
andriod 中下载图片到sdcard中例子
Android实现下载图片并保存到SD卡中 收藏


1.java代码,下载图片的主程序

先实现显示图片,然后点击下载图片按钮,执行下载功能。




view plaincopy to clipboardprint?
01.package com.min.android_test_2_3_3; 
02. 
03.import java.io.BufferedOutputStream; 
04.import java.io.ByteArrayOutputStream; 
05.import java.io.File; 
06.import java.io.FileOutputStream; 
07.import java.io.IOException; 
08.import java.io.InputStream; 
09.import java.net.HttpURLConnection; 
10.import java.net.URL; 
11. 
12.import android.app.Activity; 
13.import android.app.ProgressDialog; 
14.import android.graphics.Bitmap; 
15.import android.graphics.BitmapFactory; 
16.import android.os.Bundle; 
17.import android.os.Environment; 
18.import android.os.Handler; 
19.import android.os.Message; 
20.import android.util.Log; 
21.import android.view.View; 
22.import android.widget.Button; 
23.import android.widget.ImageView; 
24.import android.widget.Toast; 
25.public class AndroidTest2_3_3 extends Activity { 
26.    private final static String TAG = "AndroidTest2_3_3"; 
27.    private final static String ALBUM_PATH  
28.            = Environment.getExternalStorageDirectory() + "/download_test/"; 
29.    private ImageView imageView; 
30.    private Button btnSave; 
31.    private ProgressDialog myDialog = null; 
32.    private Bitmap bitmap; 
33.    private String fileName; 
34.    private String message; 
35.     
36.     
37.    @Override 
38.    protected void onCreate(Bundle savedInstanceState) { 
39.        super.onCreate(savedInstanceState); 
40.        setContentView(R.layout.main); 
41.         
42.        imageView = (ImageView)findViewById(R.id.imgSource); 
43.        btnSave = (Button)findViewById(R.id.btnSave); 
44.         
45.        String filePath = "http://hi.csdn.net/attachment/201105/21/134671_13059532779c5u.jpg"; 
46.        fileName = "test.jpg"; 
47.         
48.        try {    
49.            byte[] data = getImage(filePath);    
50.            if(data!=null){    
51.                bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);// bitmap    
52.                imageView.setImageBitmap(bitmap);// display image    
53.            }else{    
54.                Toast.makeText(AndroidTest2_3_3.this, "Image error!", 1).show();    
55.            }    
56.        } catch (Exception e) {    
57.            Toast.makeText(AndroidTest2_3_3.this,"Newwork error!", 1).show();    
58.            e.printStackTrace();    
59.        }    
60. 
61.         
62.        // 下载图片 
63.        btnSave.setOnClickListener(new Button.OnClickListener(){ 
64.            public void onClick(View v) { 
65.                myDialog = ProgressDialog.show(AndroidTest2_3_3.this, "保存图片", "图片正在保存中,请稍等...", true); 
66.                new Thread(saveFileRunnable).start(); 
67.        } 
68.        }); 
69.             
70.    } 
71. 
72.    /**  
73.     * Get image from newwork  
74.     * @param path The path of image  
75.     * @return  
76.     * @throws Exception  
77.     */   
78.    public static byte[] getImage(String path) throws Exception{    
79.        URL url = new URL(/blog_article/path/index.html);    
80.        HttpURLConnection conn = (HttpURLConnection) url.openConnection();    
81.        conn.setConnectTimeout(5 * 1000);    
82.        conn.setRequestMethod("GET");    
83.        InputStream inStream = conn.getInputStream();    
84.        if(conn.getResponseCode()==200){    
85.            return readStream(inStream);    
86.        }    
87.        return null;    
88.    }    
89.   
90.    /**  
91.     * Get data from stream  
92.     * @param inStream  
93.     * @return  
94.     * @throws Exception  
95.     */   
96.    public static byte[] readStream(InputStream inStream) throws Exception{    
97.        ByteArrayOutputStream outStream = new ByteArrayOutputStream();    
98.        byte[] buffer = new byte[1024];    
99.        int len = 0;    
100.        while( (len=inStream.read(buffer)) != -1){    
101.            outStream.write(buffer, 0, len);    
102.        }    
103.        outStream.close();    
104.        inStream.close();    
105.        return outStream.toByteArray();    
106.    }  
107. 
108.    /**
109.     * 保存文件
110.     * @param bm
111.     * @param fileName
112.     * @throws IOException
113.     */ 
114.    public void saveFile(Bitmap bm, String fileName) throws IOException { 
115.        File dirFile = new File(ALBUM_PATH); 
116.        if(!dirFile.exists()){ 
117.            dirFile.mkdir(); 
118.        } 
119.        File myCaptureFile = new File(ALBUM_PATH + fileName); 
120.        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(myCaptureFile)); 
121.        bm.compress(Bitmap.CompressFormat.JPEG, 80, bos); 
122.        bos.flush(); 
123.        bos.close(); 
124.    } 
125.     
126.    private Runnable saveFileRunnable = new Runnable(){ 
127.        @Override 
128.        public void run() { 
129.            try { 
130.                saveFile(bitmap, fileName); 
131.                message = "图片保存成功!"; 
132.            } catch (IOException e) { 
133.                message = "图片保存失败!"; 
134.                e.printStackTrace(); 
135.            } 
136.            messageHandler.sendMessage(messageHandler.obtainMessage()); 
137.        } 
138.             
139.    }; 
140.     
141.    private Handler messageHandler = new Handler() { 
142.        @Override 
143.        public void handleMessage(Message msg) { 
144.            myDialog.dismiss(); 
145.            Log.d(TAG, message); 
146.            Toast.makeText(AndroidTest2_3_3.this, message, Toast.LENGTH_SHORT).show(); 
147.        } 
148.    }; 
149.     
150.} 


下载进度条的可以参考我的另外一个帖子:Android更新下载进度条

2.main.xml文件,只有一个button和一个ImageView




view plaincopy to clipboardprint?
01.<?xml version="1.0" encoding="utf-8"?> 
02.<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
03.    android:orientation="vertical" 
04.    android:layout_width="fill_parent" 
05.    android:layout_height="fill_parent" 
06.    > 
07.    <Button 
08.        android:id="@+id/btnSave" 
09.        android:layout_width="wrap_content"  
10.        android:layout_height="wrap_content" 
11.        android:text="保存图片" 
12.        /> 
13.    <ImageView 
14.        android:id="@+id/imgSource" 
15.        android:layout_width="wrap_content"  
16.        android:layout_height="wrap_content"  
17.        android:adjustViewBounds="true" 
18.        /> 
19.</LinearLayout> 


3.在mainfest文件中增加互联网权限和写sd卡的权限




view plaincopy to clipboardprint?
01.<uses-permission android:name="android.permission.INTERNET" />  
02.<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
03.   <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> 


预览图:




本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ameyume/archive/2011/06/06/6528205.aspx

    
[2] 创设sdcard
    来源: 互联网  发布时间: 2014-02-18
创建sdcard

最近在做一个下载附件的小项目需要用到sdcard,在看了几位大神的文章之后我也把创建sdcard的步骤记录下来
创建SDCard可以在Eclipse创建模拟器时随同创建,也可以使用DOS命令进行创建,如下:在Dos窗口中进入android SDK安装路径的tools目录,输入以下命令创建一张容量为2G的SDCard,文件后缀可以随便取,建议使用.img:

注意:命令行不会自动创建文件夹 ,要自己创建一个文件夹

mksdcard 2048M D:\AndroidTool\sdcard.img


创建好之后在AndroidManifest.xml中加入访问SDCard的权限

<!-- 在SDCard中创建与删除文件权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<!-- 往SDCard写入数据权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>


最后要做的就是激活sdcard了,激活sdcard有三种方法
1、在命令行里输入,注意用此方法必须关掉现有的模拟器

emulator -avd my_android1.5 -sdcard D:\mysdcard.img


2、.如果在开发环境(Eclipse)中,可以在Run Configuration对话框中设置启动参数

-sdcard D:\mysdcard.img


    
[3] 【6.9】Activity跟Task
    来源: 互联网  发布时间: 2014-02-18
【6.9】Activity和Task

Task,是一系列用栈的形式表示的Activity的组合。

 

<activity><launchMode>属性,可以对这种栈的形式作一些改变,有以下四个值

 

standard(默认)

singleTop

singleTask

singleInstance

 

 

1)哪个Task将容纳相应Intent的Activity。standard和singleTop,是产生Intent的那个Task,除非Intent设置为FLAG_ACTIVITY_NEW_TASK;singleTask和singleInstance则指向另一个Task的根,重新定义一个新的Task

 

2)能否创建多个实例。standard和singleTop,能够在多个Task创建多个实例,singleTask和singleInstance只能创建一个实例

 

3)能否在Task中容纳其他Activity。singleInstance独占一个Task,singleTask只能位于栈底,其他两者不限

 

4)是否需要创建新的实例来响应Intent。standard会重复创建;假如栈顶正好是要响应Intent的Activity,那么设置为singleTop将不会重复创建;而singleTask和singleInstance永远只有一个实例

 

 

与之相关联,有Intent的Flags的设置,常用的状态有:

 

FLAG_ACTIVITY_NEW_TASK:成为一个新的Task的开始,不管现在是否已经有实例在运行,使用于与启动它的Activity联系不大的行为,但要确保能够回到原Task中

 

FLAG_ACTIVITY_CLEAR_TOP:假如Task中已经有了这个Activity,将不会创建新的实例,而是清除栈顶,直到到达这个Activity

 

FLAG_ACTIVITY_SINGLE_TOP:与上面的singleTop相同

 

 

 


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3