当前位置:首页 » 安卓系统 » android多张图片上传

android多张图片上传

发布时间: 2023-08-22 05:13:33

⑴ 【Android开发】怎么在ListView中做一个图片批量上传的队列

先是两个layout:
1、main.xml

复制代码
复制代码
1 <?xml version="1.0" encoding="utf-8"?>
2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 android:orientation="vertical"
4 android:layout_width="fill_parent"
5 android:layout_height="fill_parent">
6 <ListView
7 android:layout_width="fill_parent"
8 android:layout_height="fill_parent"
9 android:focusable="false"
10 android:id="@+id/lvImageList" >
11 </ListView>
12 </LinearLayout>
复制代码
复制代码
2、listitem.xml

复制代码
复制代码
1 <?xml version="1.0" encoding="utf-8"?>
2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 android:orientation="horizontal"
4 android:layout_width="fill_parent"
5 android:layout_height="?android:attr/listPreferredItemHeight">
6 <ImageView
7 android:id="@+id/itemImgImageInfo"
8 android:layout_marginTop="4dip"
9 android:layout_marginBottom="4dip"
10 android:layout_width="?android:attr/listPreferredItemHeight"
11 android:layout_height="?android:attr/listPreferredItemHeight">
12 </ImageView>
13 <TwoLineListItem xmlns:android="http://schemas.android.com/apk/res/android"
14 android:layout_width="fill_parent"
15 android:layout_height="fill_parent"
16 android:paddingLeft="4dip"
17 android:mode="twoLine">
18 <CheckedTextView
19 android:id="@+id/itemChkImageInfo"
20 android:layout_width="fill_parent"
21 android:layout_height="wrap_content"
22 android:gravity="center_vertical"
23 android:textAppearance="?android:attr/textAppearanceSmall"
24 android:checkMark="?android:attr/listChoiceIndicatorMultiple">
25 </CheckedTextView>
26 <TextView
27 android:id="@+id/itemTxtImageInfo"
28 android:layout_width="fill_parent"
29 android:layout_height="wrap_content"
30 android:gravity="center_vertical|top"
31 android:layout_marginBottom="4dip"
32 android:layout_below="@+id/itemChkImageInfo"
33 android:textAppearance="?android:attr/textAppearanceSmall">
34 </TextView>
35 </TwoLineListItem>
36 </LinearLayout>
复制代码
复制代码
接着是代码:
复制代码
复制代码
1 package com.android.MultipleChoiceImageList;
2
3 import java.util.ArrayList;
4 import java.util.HashMap;
5 import java.util.List;
6 import java.util.Map;
7
8 import android.app.Activity;
9 import android.content.Context;
10 import android.database.Cursor;
11 import android.graphics.Bitmap;
12 import android.net.Uri;
13 import android.os.Bundle;
14 import android.provider.MediaStore;
15 import android.provider.MediaStore.Images;
16 import android.view.LayoutInflater;
17 import android.view.View;
18 import android.view.ViewGroup;
19 import android.widget.AdapterView;
20 import android.widget.CheckedTextView;
21 import android.widget.ImageView;
22 import android.widget.ListView;
23 import android.widget.SimpleAdapter;
24 import android.widget.TextView;
25 import android.widget.AdapterView.OnItemClickListener;
26
27 public class MainActivity extends Activity {
28
29 private ListView lvImageList;
30
31 private String imageID= "imageID";
32 private String imageName = "imageName";
33 private String imageInfo = "imageInfo";
34
35 private ArrayList<String> fileNames = new ArrayList<String>();
36
37 private mAdapter;
38
39 /** Called when the activity is first created. */
40 @Override
41 public void onCreate(Bundle savedInstanceState) {
42 super.onCreate(savedInstanceState);
43 setContentView(R.layout.main);
44
45 lvImageList=(ListView) this.findViewById(R.id.lvImageList);
46 lvImageList.setItemsCanFocus(false);
47 lvImageList.setOnItemClickListener(new OnItemClickListener() {
48 @Override
49 public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
50
51 CheckedTextView checkedTextView = (CheckedTextView) view.findViewById(R.id.itemChkImageInfo);
52 checkedTextView.toggle();
53 mAdapter.setCheckItem(position, checkedTextView.isChecked());
54 }
55 });
56 try{
57 String[] from = {imageID, imageName, imageInfo};
58 int[] to = {R.id.itemImgImageInfo, R.id.itemChkImageInfo, R.id.itemTxtImageInfo};
59 mAdapter = new (MainActivity.this, GetImageList(), R.layout.listitem, from, to);
60 lvImageList.setAdapter(mAdapter);
61 }
62 catch(Exception ex){
63 return;
64 }
65 }
66
67 //获取图片列表
68 private ArrayList<Map<String, String>> GetImageList(){
69
70 ArrayList<Map<String, String>> imageList = new ArrayList<Map<String,String>>();
71 HashMap<String, String> imageMap;
72
73 //读取SD卡中所有图片
74 Uri uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
75 String[] projection = { MediaStore.Images.Media._ID, MediaStore.Images.Media.DISPLAY_NAME,MediaStore.Images.Media.DATA, MediaStore.Images.Media.SIZE};
76 String selection = MediaStore.Images.Media.MIME_TYPE + "=?";
77 String[] selectionArg ={"image/jpeg"};
78 Cursor mCursor = this.managedQuery(uri, projection, selection, selectionArg, MediaStore.Images.Media.DISPLAY_NAME);
79 imageList.clear();
80 if (mCursor != null) {
81 mCursor.moveToFirst();
82 while (mCursor.getPosition() != mCursor.getCount())
83 {
84 imageMap= new HashMap<String, String>();
85 imageMap.put(imageID, mCursor.getString(mCursor.getColumnIndex(MediaStore.Images.Media._ID)));
86 imageMap.put(imageName, mCursor.getString(mCursor.getColumnIndex(MediaStore.Images.Media.DISPLAY_NAME)));
87 imageMap.put(imageInfo, " " + (mCursor.getLong(mCursor.getColumnIndex(MediaStore.Images.Media.SIZE))/1024)+"KB");
88 imageList.add(imageMap);
89 fileNames.add(mCursor.getString(mCursor.getColumnIndex(MediaStore.Images.Media.DATA)));
90 mCursor.moveToNext();
91 }
92 mCursor.close();
93 }
94 return imageList;
95 }
96
97 //可多选图片列表适配器
98 class extends SimpleAdapter {
99
100 private Map<Integer, Boolean> map;
101 private List<Integer> state;
102 private List<? extends Map<String, ?>> mList;
103
104 LayoutInflater mInflater;
105
106 public (Context context, List<Map<String, String>> data, int resource, String[] from, int[] to) {
107 super(context, data, resource, from, to);
108 map = new HashMap<Integer, Boolean>();
109 mInflater = LayoutInflater.from(context);
110 mList = data;
111 for(int i = 0; i < data.size(); i++) {
112 map.put(i, false);
113 }
114 state = new ArrayList<Integer>();
115 }
116
117 @Override
118 public int getCount() {
119 return mList.size();
120 }
121
122 @Override
123 public Object getItem(int position) {
124 return position;
125 }
126
127 @Override
128 public long getItemId(int position) {
129 return position;
130 }
131
132 //设置条目选中状态
133 public void setCheckItem(int position, Boolean isChecked){
134 map.put(position, isChecked);
135 if (state.contains(position))
136 state.remove((Object)position);
137 if (isChecked){
138 state.add(position);
139 }
140 }
141
142 //获取列表中已选中条目
143 public long[] getCheckItemIds(){
144 int count = state.size();
145 long[] ids = new long[count];
146 for (int i = 0; i < count; i++) {
147 ids[i]= (long)state.get(i);
148 }
149 return ids;
150 }
151
152 @Override
153 public View getView(int position, View convertView, ViewGroup parent) {
154 if(convertView == null) {
155 convertView = mInflater.inflate(R.layout.listitem, null);
156 }
157
158 CheckedTextView checkedTextView = (CheckedTextView) convertView.findViewById(R.id.itemChkImageInfo);
159 checkedTextView.setChecked(map.get(position));
160 checkedTextView.setText((String)mList.get(position).get(imageName));
161
162 TextView textView = (TextView) convertView.findViewById(R.id.itemTxtImageInfo);
163 textView.setText((String)mList.get(position).get(imageInfo));
164
165 //显示图片缩略图
166 ImageView image = (ImageView) convertView.findViewById(R.id.itemImgImageInfo);
167 Bitmap bm = MediaStore.Images.Thumbnails.getThumbnail(getContentResolver(), Long.parseLong((String)mList.get(position).get(imageID)), Images.Thumbnails.MICRO_KIND, null);
168 image.setImageBitmap(bm);
169
170 return convertView;
171 }
172 }
173 }

⑵ 七牛云存储Android端可以一次上传多张图片吗

只能上传一张照片,
如果要上传多张的话,
可以把几张照片拼起来做成一张照片再上传

⑶ android怎样上传图片到服务器

界面很简单,点击 【选择图片】,从图库里选择图片,显示到下面的imageview里,点击上传,就会上传到指定的服务器

布局文件:

?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="选择图片"
android:id="@+id/selectImage"
/>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="上传图片"
android:id="@+id/uploadImage"
/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView"
/>
</LinearLayout>

Upload Activity:
?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105

public class Upload extends Activity implements OnClickListener {
private static String requestURL = "http://192.168.1.212:8011/pd/upload/fileUpload.do";
private Button selectImage, uploadImage;
private ImageView imageView;

private String picPath = null;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.upload);

selectImage = (Button) this.findViewById(R.id.selectImage);
uploadImage = (Button) this.findViewById(R.id.uploadImage);
selectImage.setOnClickListener(this);
uploadImage.setOnClickListener(this);

imageView = (ImageView) this.findViewById(R.id.imageView);

}

@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.selectImage:
/***
* 这个是调用android内置的intent,来过滤图片文件 ,同时也可以过滤其他的
*/
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(intent, 1);
break;
case R.id.uploadImage:
if (picPath == null) {

Toast.makeText(Upload.this, "请选择图片!", 1000).show();
} else {
final File file = new File(picPath);

if (file != null) {
String request = UploadUtil.uploadFile(file, requestURL);
uploadImage.setText(request);
}
}
break;
default:
break;
}
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == Activity.RESULT_OK) {
/**
* 当选择的图片不为空的话,在获取到图片的途径
*/
Uri uri = data.getData();
Log.e(TAG, "uri = " + uri);
try {
String[] pojo = { MediaStore.Images.Media.DATA };

Cursor cursor = managedQuery(uri, pojo, null, null, null);
if (cursor != null) {
ContentResolver cr = this.getContentResolver();
int colunm_index = cursor
.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
String path = cursor.getString(colunm_index);
/***
* 这里加这样一个判断主要是为了第三方的软件选择,比如:使用第三方的文件管理器的话,你选择的文件就不一定是图片了,
* 这样的话,我们判断文件的后缀名 如果是图片格式的话,那么才可以
*/
if (path.endsWith("jpg") || path.endsWith("png")) {
picPath = path;
Bitmap bitmap = BitmapFactory.decodeStream(cr
.openInputStream(uri));
imageView.setImageBitmap(bitmap);
} else {
alert();
}
} else {
alert();
}

} catch (Exception e) {
}
}

super.onActivityResult(requestCode, resultCode, data);
}

private void alert() {
Dialog dialog = new AlertDialog.Builder(this).setTitle("提示")
.setMessage("您选择的不是有效的图片")
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
picPath = null;
}
}).create();
dialog.show();
}

}

这个才是重点 UploadUtil:
?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89

public class UploadUtil {
private static final String TAG = "uploadFile";
private static final int TIME_OUT = 10 * 1000; // 超时时间
private static final String CHARSET = "utf-8"; // 设置编码
/**
* 上传文件到服务器
* @param file 需要上传的文件
* @param RequestURL 请求的rul
* @return 返回响应的内容
*/
public static int uploadFile(File file, String RequestURL) {
int res=0;
String result = null;
String BOUNDARY = UUID.randomUUID().toString(); // 边界标识 随机生成
String PREFIX = "--", LINE_END = "\r\n";
String CONTENT_TYPE = "multipart/form-data"; // 内容类型

try {
URL url = new URL(RequestURL);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(TIME_OUT);
conn.setConnectTimeout(TIME_OUT);
conn.setDoInput(true); // 允许输入流
conn.setDoOutput(true); // 允许输出流
conn.setUseCaches(false); // 不允许使用缓存
conn.setRequestMethod("POST"); // 请求方式
conn.setRequestProperty("Charset", CHARSET); // 设置编码
conn.setRequestProperty("connection", "keep-alive");
conn.setRequestProperty("Content-Type", CONTENT_TYPE + ";boundary="+ BOUNDARY);

if (file != null) {
/**
* 当文件不为空时执行上传
*/
DataOutputStream dos = new DataOutputStream(conn.getOutputStream());
StringBuffer sb = new StringBuffer();
sb.append(PREFIX);
sb.append(BOUNDARY);
sb.append(LINE_END);
/**
* 这里重点注意: name里面的值为服务器端需要key 只有这个key 才可以得到对应的文件
* filename是文件的名字,包含后缀名
*/

sb.append("Content-Disposition: form-data; name=\"file\"; filename=\""
+ file.getName() + "\"" + LINE_END);
sb.append("Content-Type: application/octet-stream; charset="
+ CHARSET + LINE_END);
sb.append(LINE_END);
dos.write(sb.toString().getBytes());
InputStream is = new FileInputStream(file);
byte[] bytes = new byte[1024];
int len = 0;
while ((len = is.read(bytes)) != -1) {
dos.write(bytes, 0, len);
}
is.close();
dos.write(LINE_END.getBytes());
byte[] end_data = (PREFIX + BOUNDARY + PREFIX + LINE_END)
.getBytes();
dos.write(end_data);
dos.flush();
/**
* 获取响应码 200=成功 当响应成功,获取响应的流
*/
res = conn.getResponseCode();
Log.e(TAG, "response code:" + res);
if (res == 200) {
Log.e(TAG, "request success");
InputStream input = conn.getInputStream();
StringBuffer sb1 = new StringBuffer();
int ss;
while ((ss = input.read()) != -1) {
sb1.append((char) ss);
}
result = sb1.toString();
Log.e(TAG, "result : " + result);
} else {
Log.e(TAG, "request error");
}
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return res;
}
}

⑷ android 怎么多图上传 okhttp

android上传图片是先将图片文件转换成流文件:可用以下代码转换流文件,imgPath为图片的完整地址
//图片转化成base64字符串
public static String imgToBase64(String imgPath) {
InputStream in = null;
byte[] data = null;
//读取图片字节数组
try {
in = new FileInputStream(imgPath);
data = new byte[in.available()];
in.read(data);
in.close();
}
catch (IOException e){
e.printStackTrace();
}
//对字节数组Base64编码
sun.misc.BASE64Encoder encoder = new BASE64Encoder();
return encoder.encode(data);//返回Base64编码过的字节数组字符串
}
然后图片文件就成为一串字符串啦,传递方法和普通字符串一样,多图使用分号隔开即可,后台收到后直接将流文件转换成图片保存即可。

⑸ android 文件流的方式多张图片上传,并多个参数

android 开发中图片上传是很正常的,有两种可用的方式:

下面我们就说明一下以文件流上传图片的方式, 实现网络框架是Retrofit

测试上传3张手机sd卡中的图片,并传人了参数EquipmentCode, Description, ReportUserCode等

其中的思路是: Post的方式,Content-Type:multipart/form-data的类型进行上传文件的。

其中MultipartBody是RequestBody的扩展,

看看请求头的信息, 请求中携带了所有信(如果接口开发人员说不能收到, 叫他自己想想,截图给他,哈哈哈:)

上面的是上传了3张图片,如果一张,只要传一个就行!

就这样,图片上传的两种方式ok拉,测试通过的,保证正确!

参考: https://www.jianshu.com/p/acfefb0a204f

⑹ Android图片批量上传怎么保证上传顺序

我一般都是通过遍历集合的方式来上传图片。而且一般都不会去管这个上传的顺序,只需要服务端按你需要返回数据就可以了

⑺ 为什么在安卓4.0上可以运行愤怒的小鸟这一类的小游戏游戏,却不能运行实况足球这一类的大游戏呢

每当谷歌发布新一代操作系统之后,各家手机厂商升级上一代操作便会提上日程,同时也会有下一代操作系统的消息在互联网流出,这样的形式渐渐成为谷歌推广Android操作系统的一种惯用方式。在Android2.3姜饼即将发布,Android3.0系统蜂巢被曝光,各家手机厂商都正在忙于将自己的Android手机升级至Android2.2操作系统的时候,国外媒体有消息指出Android下一代系统名称已经确定,爆料者为ARM公司的总裁Tudor Brown,该系列产品代号Ice Cream Sandwich,简称ICS,中文直译过来便是“冰激凌三明治。谷歌方面已经非常明确的告诉大家:Android4.0是各手机与平板电脑系统融合的产品,并没有最低硬件要求,理论上来讲,现有的Android2.2/2.3均可升级Android4.0。在硬件上不设限的同时,谷歌公布Android 4.0系统后,很快就败皮链将SDK公之于众。Google同时公布了Android 3.0, 4.0源代码,最新版本为4.0.4。 Nexus机型上系统简介 最新 Android 系统4.0 命名为 Ice Cream Sandwich(以下简称ICS,冰淇淋三明治),对于Google公司旗下最新一代Android Ice Cream Sandwich操作系统,相信很多玩家都已经有所耳闻了,而且恐怕相思之情已经难以慰藉。还好,对于Android Ice Cream Sandwich操作系统,全世界的安卓粉丝心情都同样急切察孙,这不国外玩家已经在互联网上曝光了握脊Google Android Ice Cream Sandwich操作系统最新截图。 国外互联网上已经曝光了一张Google Android Ice Cream Sandwich操作系统截图,此图片是由国外的Android Police网站放出的。据称此图是该网站在一台Google Nexus S智能手机上截下来的,其实这张图片只是一组截图里的一张而已。从那张图片上我们可以看到,Google最新版本的Android Ice Cream Sandwich操作系统似乎在UI用户界面方面有一些改变,除此之外我们从该图片里也可以看出其他一些新的特色,比如说全新主题的Gmail等。目前Google公司最新版本的Android Ice Cream Sandwich操作系统暂时还没有正式上市,此前有消息称Google或打算在10月份期间正式放出Android Ice Cream Sandwich操作系统,这也意味着新版Android将与苹果iPhone4S的iOS5系统正式火拼。
安卓4操作系统UI设计(29张)在今年5月份举行的谷歌I/O大会上,谷歌正式对外公布Ice Cream Sandwich的存在后,全世界的安卓用户和开发者就对这款操作系统备受期待。谷歌称代号为Ice Cream Sandwich的操作系统最大的特色在于将能统一安卓系统各个版本,改变安卓平板电脑和智能手机分化的现状,同时根据谷歌的说法,Ice Cream Sandwich将具有以下特色: 统一智能手机和平板电脑系统:谷歌新一代安卓系统Ice Cream Sandwich将只有一个版本,同时支持智能手机、平板电脑,这将解决安卓 3.x系统和安卓 2.x操作系统版本分化的问题,开发者为平板电脑和智能手机开发的应用也将可以通用。
编辑本段系统命名
熟悉Android的朋友都知道谷歌一贯爱以甜品的名称为Android操作系统命名。Android1.5操作系统被命CupCake,CupCake是国内女生比较喜欢的杯型蛋糕,在蛋糕房或是西式自助里较为常见。Android1.6操作系统名为Donut,也就是电影《变形金刚》胖黑客在审讯时所吃的甜甜圈。而在Android2.0/2.01/2.1则被命名为Eclair的奶油夹心面包。现在各家手机厂商正在升级的Android2,2操作系统名为Froyo,是一种名为冻酸奶的甜品。而在前不久公布的Android2.3叫做Gingerbread,是一种叫做姜饼的小饼干。而Android3.0操作系统名为HoneyComb,在电影《满汉全席》电影末段中光头厨师便是将熊掌放入锅中,然后配以蜂巢进行烹制。在最新曝光的的Android4.0系统被命名为Ice CreamSandwich,即冰激凌三明治。
编辑本段最新消息
之前媒体普遍预测的是Ice Cream(冰淇淋),Android老大哥安迪鲁宾近日在接受采访时已经证实该名称,不过有所改动,Android下一代代号为Ice Cream Sandwich(冰淇淋三明治)。据分析称,Google采用这样的命名,主要是冰淇淋雕塑造型与冻酸奶会很相似,大家很难区分这两种甜品,所以索性改了一个外观不一样的甜点。 目前还并不清楚冰淇淋三明治的具体版本号、功能等信息,Google下一代手机将与三星一同研发 运行Android 4.处理器采用TI OMAP 4460,Cortex A9结构频率高达1.5GHz,支持1080p回放。此外,Android 4.0的兼容性将更为强大,除了旗舰机型会预装外,一些老设备也可通过升级的方式来到最新版本上。 Android 4.0内置的最新版Google+和Google Music两款应用也已经遭到提取并泄漏,我们已经得到安装文件进行测试,首先版本号为2.0.0的Google+在国内不能获取服务连接。版本号为4.0.1的Google Music可以正常使用。 原定计划10月11日发布Android 4.0系统,因为了表示对苹果联合创始人乔布斯的尊重,谷歌将推迟安卓4.0系统的发布 声明原文如下: “三星和Google已经决定推迟原先定于10月11日在圣地亚哥CTIA举行的Mobile Unpacked活动,在当前状况下,双方均同意这不是一个公布新产品的时机。我们希望大家理解这次推迟造成的不便,我们将会在适当时候宣布一个新的日期和地点。” 该消息已经得到三星公关总监Kim Titus的正式确认,Google发言人则表示这次推迟主要是因为对乔帮主的离去表示尊重。 北京时间2011年10月19日,三星与Google联合在香港地区正式发布了首款搭载了Android4.0(内部研发代号Ice Cream Sanwich)的手机GALAXY Nexus。此次发布会同时还展示了最新的Android操作系统,对未来Android系统发展有重要的参考意义,因此颇受业界瞩目。 2011年11月8日,HTC官方通过Facebook发布消息称,将在2012年年初提供首批智能手机的Android 4.0升级服务,而入选HTC首批升级的手机包括:HTC Sensation,HTC Sensation XL,HTC Sensation XE,HTC Rezound(美版),HTC EVO 3D, HTC EVO Design 4G(美版)和HTC Amaze 4G(美版)。 谷歌云音乐:谷歌云音乐业务最早出现Android 3.1系统版本上,但当时谷歌云音乐应用还比较原始,现在,成熟的谷歌云音乐将随着Ice Cream Sandwich一起到来。谷歌云音乐业务将允许平板电脑和智能手机离线保存已经播放过的音乐,并可以离线下载,由于采用了云存储技术,这些音乐将可以在用户的所有Android系统设备中共享。
编辑本段十大特性
1、Android统一版本 电视手机平板融合 Android4.0
Android 4.0将只提供一个版本,同时支持智能手机、平板电脑、电视等设备。至此Android系统设备将迎来统一,Android平板的窘迫现状将得到有效改善。另一方面包括三星、索尼在内的家电厂商日益发展的Smart TV也将迎来一次有价值的Android版本升级。 2、 全新设计的UI人性化体验界面 谷歌在经历了Android 2.3的版本更新之后,手机系统UI进行了不小的改进,而新的Android 3.1的用户界面也一改此前Android单调的风格。在经历了众多版本的演化之后,谷歌应该对于用户界面体验方面有所提升,新的UI设计很有可能会迎来成熟版。 3、回归原点 保持开源特性 此前Android 3.0曾一度宣布不采取开源措施,然而谷歌深知Android系统一大成功特性就是开源。平板上吃到的苦头势必在全新的Android 4.0上避免,用户为中心的刷机资源一定会让Android 4.0锦上添花。如果你是一个ROM的定制用户,那么你会对这条消息很开心,相信源码一旦发布,很快就能看到 CyanogenMod 9。 4、同步升级Linux内核 更新3.0以上版本 Android4.0
Android是Google自己研发的手机平台操作系统,该平台基于开源软件Linux,由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件 4.0的版本号就能告诉我们,这是一个大的升级版本。Linux刚刚发布Linux 3.0内核没多久,后来又更新到了3.0.1 。 5、音频、视频Play Store提供资源下载 谷歌已经试水性质的推出了Google Music Beta ,允许上传2万首音乐到Google的云端服务器,自动创建播放列表在任何支持flash的设备上回放,我们有理由相信这种在Appstore影响下的数字视频、音频服务内容的提供也将会出现在Android上。 6、针对多核处理器优化 随着越来越多的厂商都在推双核的智能手机,实际的效果如何我们不予评说,但Android 4.0将特别为使用双核乃至多核处理器的手机进行专门的优化,充分发挥双核的性能。 7、运行速度全面提升 虽然官方暂时并没有提及这个性能具体体现在什么方面,但是性能上的提升是势必会有的。 8、集成Google电视和Chrome OS的智能停放 Android4.0
除了在智能电视Google TV中进行融合,全新的Android 4.0也将有望借鉴Chrome OS系统的智能停放功能进行优化,这些功能有望帮助Android 4.0在多项设备终端进行整合。 9、为OEM提供了官方的主题引擎 有了这个引擎,便可通过Google的升级程序更新到这些第三方的主题。必须的,现在外观同质化这么严重,主题与内涵成为了手机的重点因素之一。 10、比拟GameCenter的游戏中心 Google收购和投资如LabPixies、Slide、Jambool、Zynga等公司,这些都将会是Google手机游戏社交网络的技术储备,而直接竞争对手会是苹果的Games Center。这些都预示着Android下一个版本将迎来一次整合高质量游戏应用的一个平台。
编辑本段全新的UI
谷歌在经历了Android 2.3的版本更新之后,手机系统UI进行了不小的改进,而新的Android 3.1的用户界面也一改此前Android单调的风格。在经历了众多版本的演化之后,谷歌应该对于用户界面体验方面有所提升,Android 4.0操作系统,Android 4.0将只提供一个版本,同时支持智能手机、平板电脑、电视等设备。
Android4.0全新UI(8张)Android 4.0的操作界面,和蜂巢系统风格类似,然而在很多细节上还是有着很大的不同。进入新系统我们首先看到的是界面的改进。 UI界面主屏幕底部核心导航虚拟按钮可隐藏,支持文件夹拖放功能和不同应用程序的使用转换按钮。而彻底放弃了实体按键,采用和Android 3.0(蜂巢)一样的屏幕虚拟按键,增加大量滑动的手势操作。 Android4.0的用户界面将有不少改进,经历多种演变后谷歌应该对于用户界面体验方面有所提升,从下面搭载Android操作系统的平板电脑截图中,可以看出新的UI设计更加成熟。Android 4.0延续了Android 3.X界面的风格,保留了可调节大小的Widget。 此外,Android 4.0还将文件夹功能进行改进,模仿iOS系统把两个图标合成一个文件夹,新建文件夹包含拖拽前的这两个应用,点击后则打开该文件夹。功能上向苹果的靠拢。
编辑本段速度提升
人们普遍将安卓平板电脑销量不佳归结于操作系统的不给力,认为安卓平板使用体验距离苹果iPad有着不小的距离,现在,随着苹果iOS 5和安卓Ice Cream Sandwich的发布,新一轮的比拼已经展开。而作为消费者,我们也相当乐于看到两家巨头的竞争,因为商家的竞争必将为我们消费者带来更多价格便宜、使用体验舒适的产品。

热点内容
滑板鞋脚本视频 发布:2025-02-02 09:48:54 浏览:432
群晖怎么玩安卓模拟器 发布:2025-02-02 09:45:23 浏览:557
三星安卓12彩蛋怎么玩 发布:2025-02-02 09:44:39 浏览:743
电脑显示连接服务器错误 发布:2025-02-02 09:24:10 浏览:537
瑞芯微开发板编译 发布:2025-02-02 09:22:54 浏览:146
linux虚拟机用gcc编译时显示错误 发布:2025-02-02 09:14:01 浏览:233
java驼峰 发布:2025-02-02 09:13:26 浏览:651
魔兽脚本怎么用 发布:2025-02-02 09:10:28 浏览:532
linuxadobe 发布:2025-02-02 09:09:43 浏览:212
sql2000数据库连接 发布:2025-02-02 09:09:43 浏览:726