当前位置:首页 » 安卓系统 » androidgallery放大

androidgallery放大

发布时间: 2024-01-31 00:05:49

A. 求教android 系统中图库里面那种放大后还可以拖动切换下一张图片的效果是怎么实现的。

好像不可以的...还是双击一下,让图片回复原来的大小,然后滑动屏幕切换图片。

B. android gallery如何动态添加图片 Integer[] images = { R.drawable.1,R.drawable.2} 这是我写死的数组

拍照调用camera.takePicture(shutter, pc1, pc2)方法;
我们可以第3个参数中处理一下。
private PictureCallback pc2 = new PictureCallback() {

public void onPictureTaken(byte[] data, Camera camera) {
// TODO Auto-generated method stub
// 存储相片-Decode an immutable(不变的) bitmap from the specified byte
// array.
Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
FileOutputStream out = null;
try {
out = new FileOutputStream("/sdcard/pic_1.jpg");
BufferedOutputStream bos = new BufferedOutputStream(out);
bitmap.compress(CompressFormat.JPEG, 80, bos);// 压缩图片
bos.flush();
bos.close();
out.close();
iv.setImageBitmap(bitmap);//iv是一个imageView
stopCamera();// 关闭照相机
init();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};

C. Android Gallery setSelection和onFling方法的区别

让gallery自动滚动可以通过以下两种方法实现:

一、使用Timer和TimerTask类来完成图片的自动定时滚动:

思路:循环调用Gallery类的onFling()方法。

代码:

<span style="white-space:pre"> </span>task = new TimerTask() {

@Override
public void run() {
/**
* 参数1和2:手指在gallery上的动作
* 参数3和4:x方向和y方向的滚动的速度,-数表示向左滚,+数表示向右
*/
gallery.onFling(null, null, -750, 0);
}
};
timer.schele(task, 1000, 5000);
<span style="font-size:32px;"><strong>
</strong></span>
<span style="font-size:32px;"><strong>方式2:</strong></span>

二、使用Handler消息机制完成

思路:子线程内死循环使用handler每隔多长时间向主线程发送消息,通知gallery改变位置。

代码:

子线程部分:
<span style="white-space:pre"> new Thread(new Runnable() {
<span style="white-space:pre"> </span>int flag = 1;
<span style="white-space:pre"> </span>@Override
<span style="white-space:pre"> </span>public void run() {
<span style="white-space:pre"> </span>while (isalive) {
<span style="white-space:pre"> </span>//images为装图片的集合
<span style="white-space:pre"> </span>if ((cur_index + 1) == images.size()) {
<span style="white-space:pre"> </span>flag = -1;
<span style="white-space:pre"> </span>} else if (cur_index == 0) {
<span style="white-space:pre"> </span>flag = 1;
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>Message msg = handler.obtainMessage(MSG_UPDATE, cur_index,
<span style="white-space:pre"> </span>0);
<span style="white-space:pre"> </span>handler.sendMessage(msg);
<span style="white-space:pre"> </span>try {
<span style="white-space:pre"> </span>Thread.sleep(4000);
<span style="white-space:pre"> </span>} catch (InterruptedException e) {
<span style="white-space:pre"> </span>e.printStackTrace();
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>switch (flag) {
<span style="white-space:pre"> </span>case 1:
<span style="white-space:pre"> </span>cur_index++;
<span style="white-space:pre"> </span>break;
<span style="white-space:pre"> </span>case -1:
<span style="white-space:pre"> </span>cur_index--;
<span style="white-space:pre"> </span>break;
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>}).start();</span>
主线程部分:
private Handler handler = new Handler() {
public void handleMessage(Message msg) {
if (msg.what == MSG_UPDATE) {
gallery.setSelection(msg.arg1);
}
}
};

热点内容
存储器部件教学实验 发布:2025-01-21 09:14:06 浏览:178
php安装memcached扩展 发布:2025-01-21 09:07:06 浏览:545
手机缓存视频到电脑上 发布:2025-01-21 09:07:02 浏览:977
如果知道服务器ip有什么风险 发布:2025-01-21 09:06:58 浏览:524
在压缩曲线 发布:2025-01-21 09:05:31 浏览:909
华山算法 发布:2025-01-21 08:44:48 浏览:366
如何在微信上再设置一个密码 发布:2025-01-21 08:44:39 浏览:731
浙江服务器搭建云主机 发布:2025-01-21 08:41:38 浏览:452
光遇和王者荣耀哪个需要的配置高 发布:2025-01-21 08:40:28 浏览:13
如何取消安卓微信表情 发布:2025-01-21 08:08:39 浏览:556