- 浏览: 1578824 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (289)
- java 语法基础 (51)
- spring (8)
- mvc struct /Ant --build.xml (8)
- SOA (0)
- oracle 9i/10g (23)
- sql server 2000-2005 (3)
- 数据库基础知识 (6)
- 设计模式与软件架构 (10)
- Hibernate 持久化 (9)
- J2SE/J2EE/J2ME/AJAX 技术 (8)
- JSF 技术 (3)
- JAVA 图形化 (0)
- JMS (40)
- Eclipse 3.2 IDE 开发技巧 (13)
- 项目处理方法集合 (2)
- html/jsp/javascript (2)
- Unix/Linux (9)
- j2me/ARM/windriver/嵌入式 (4)
- 电信科学 (8)
- jsp (1)
- c/c++ (1)
- LZW压缩算法(java) (2)
- Android (77)
- 版本管理git/svn (2)
最新评论
-
huihai:
有demo吗?
NamingStrategy实现动态表名映射 -
cangbaotu:
推荐给大家一些有用的爬虫源码:https://github.c ...
网络爬虫(源代码参考) -
tuspark:
除了.classpath文件以外,.project文件也应该了 ...
Eclipse .classpath文件浅谈 -
tuspark:
造成eclipse自动关闭的原因有很多,这里有很多介绍:ecl ...
eclipse 自动关闭 解决方案 -
DEMONU:
网上都是这些,这种文章。。。
ActiveMQ中的消息持久性
Create simple effects for your images (IV) - 3D Projection
在 Android SDK 中有兩種 Camera classes。一個是
android.hardware.Camera,這是用來操控相機功能的類別。另一個是
android.graphics.Camera,這是什麼東西?今天我們就要來研究一下,這個類別能幫我們做些什麼事。
android.graphics.Camera 是一個可以讓你將 2D 物件在 3D 空間中移動,並將在其移動後的結果,畫在螢幕上的類別。
聽起來很有趣,是嗎?例如,最上面那張美女圖,你可以看出來,他是將原本的圖,以 Y 軸為軸心,旋轉約 30 度後,所畫出來的結果。
打開 android.graphics.Camera 的說明文件,你會發現,這個文件中只有下面這些 APIs 列表,什麼說明都沒有。
1. //Public Constructors
2. Camera()
3. //Public Methods
4. void applyToCanvas(Canvas canvas)
5. float dotWithNormal(float dx, float dy, float dz)
6. void getMatrix(Matrix matrix)
7. void restore()
8. void rotateX(float deg)
9. void rotateY(float deg)
10. void rotateZ(float deg)
11. void save()
12. void translate(float x, float y, float z)
//Public Constructors Camera() //Public Methods void
applyToCanvas(Canvas canvas) float dotWithNormal(float dx, float dy,
float dz) void getMatrix(Matrix matrix) void restore() void
rotateX(float deg) void rotateY(float deg) void rotateZ(float deg) void
save() void translate(float x, float y, float z)
不過,從這些 APIs 的名稱與參數,你應該可以猜出一些端倪。沒錯,這個 Camera class,其實是個 helper
class。他提供一些 APIs ,讓你控制要如何在 3D 空間中移動,最後再產生出合適的 Matrix ,讓你套用到 Canvas
的座標體系上。關於 Matrix,我在 幫圖片加上影像特效 (I) - 陰影特效 已經介紹過他的強大,還不知道的,先讀一下這篇。
用個例子來解釋這個 Camera 類別的用法,是最適當的。底下這個簡單的程式片段的結果,就是最上面那張圖。其中的 m_bmp 就是原本的美女圖。
1. camera = new Camera();
2. camera.translate(0, 0, 50);
3. camera.rotateY(30);
4. Matrix matrix3D = new Matrix();
5. camera.getMatrix(matrix3D);
6.
7. canvas.save();
8. canvas.translate(100, 100);
9. canvas.concat(matrix3D);
10.
11. canvas.drawBitmap(m_bmp, 0, 0, null);
12. canvas.restore();
camera = new Camera(); camera.translate(0, 0, 50); camera.rotateY(30);
Matrix matrix3D = new Matrix(); camera.getMatrix(matrix3D);
canvas.save(); canvas.translate(100, 100); canvas.concat(matrix3D);
canvas.drawBitmap(m_bmp, 0, 0, null); canvas.restore();
從這個範例程式中,我們知道,你可以利用 Camera.translate() 及 Camera.rotateXXX() 等 APIs 在 3D
空間中移動。其實,這些 APIs 就是在操作 Matrix 的內容。最後,你只要呼叫 Camera.getMatrix() 即可將這
Matrix 的內容抓出,並套到 Canvas 上。
在 Android ,要做出 3D 的效果,你當然可以用 OpenGL 的函式。不過,如果你需要更快的顯示速度,或者只是要做個簡單的 3D 特效,那千萬不要忘了這個 android.graphics.Camera。
评论
我在做相机开发,想设置其焦距
这是我从网上找到关于焦距设置的方案
就是手机上有个应用!它是可以实现变焦的!但是,我的应用不行;
Camera.getParameters().isZoomSupported() -->true
Camera.getParameters().isSmoothZoomSupported() -->false
这种情况下,我怎么才能实现变焦呢??
我有两个手机:
A.moto me1 ZoomSupported和SmoothZoom都是支持的,我测试了,可以实现变焦!
B.HTC G8就是上面这种情况,ZoomSupported支持,SmoothZoom不支持,所以调用:Camera.startSmoothZoom(zoom)就没反应了,但是它手机上带了一个拍照程序,有变焦功能,说明SmoothZoom不支持的情况下应该也是可以实现变焦功能的!
我尝试了,使用
Camera.getParameters().setZoom(zoom);
或者:
Camera.Parameters localParameters = mCamera.getParameters();
mCamera.getParameters().set("taking-picture-zoom", zoom);
localParameters.set("taking-picture-zoom", zoom);
都没反应!
是不是改变了zoom后,还需要是操作???
另外我将,HTC自带的拍照程序反编译了一下,它代码里,没有发现调用过:
Camera.startSmoothZoom(zoom);
但是有发现,调用过:
Camera.Parameters localParameters = mCamera.getParameters();
mCamera.getParameters().set("taking-picture-zoom", zoom);
localParameters.set("taking-picture-zoom", zoom);
还有就是发现它用了一个.so的动态链接库!
还有,Camera360这款软件,也实现了变焦!
不知道他们是怎么实现的!!???
发表评论
-
APN(default、mms、supl、dun、hipri接入点类型的区别)
2013-10-10 19:31 45603设置APN上网时,大家可能经常遇到这个问题:为什么有时要填写 ... -
AMR音频编码器概述及文件格式分析
2013-10-10 19:29 3914全称Adaptive Multi-Rate,自适应多速率编码 ... -
pad 强制加载 Hdpi资源 (2.3 dpi < 240)
2012-07-16 16:47 0pad 强制加载 Hdpi资源 (2.3 dpi < ... -
android 设计模式-享元模式
2011-12-16 23:01 2152享元(FlyWeight)模式,原意是“轻量级”模式,它用来解 ... -
statusbar 2.3
2011-11-08 16:04 1245以前我的文章分析过Stat ... -
android 输入法默认设置
2011-07-07 14:00 7147设置默认输入法 在 frameworks\base\co ... -
Android Media Scanner Process
2011-06-06 22:58 3355下面是系统图 Medi ... -
handler与多线程消息处理
2011-06-04 13:42 8243在Android下面也有多线程的概念,在C/C++中,子线程可 ... -
android light
2011-03-24 16:15 3380背光设置是在:设置->声音和显示->亮度,通过进度 ... -
PowerManagerService sensor
2011-03-22 20:06 2635默认分类 2010-12-24 14:34:55 阅读144 ... -
android 单例
2011-02-15 09:26 41891. Framework层的代码: A ... -
Android 开发之 Services 服务
2010-11-02 18:21 4193Service Service ... -
深入学习android之AlarmManager
2010-11-01 16:50 34681对应AlarmManage有一个Alarm ... -
eclipse+android+ddms+adt
2010-09-14 10:30 8391用eclipse + ADT作为android ... -
Menus
2010-09-05 19:01 1759Android Menus 文章分类:移动开发 1.O ... -
Android开机自启动应用开发
2010-08-28 10:07 4556目前需要开发一个开机自启动的GTD应用程序来提醒用户的 ... -
Android2.1_Launcher学习笔记
2010-08-11 13:40 3807文章分类:移动开发 好么,2.0的源码没看几天,2.1的 ... -
Browsing Android Source in Eclipse
2010-08-09 16:00 3390Google’s Android SDK includes ... -
android 编译
2010-08-07 16:31 24921 我的系统是Ubuntu 8.04 * 2 系统上 ... -
Ubuntu linux 右键添加"以管理员身份打开","在终端中打开"
2010-08-02 15:04 4554Ubuntu linux 右键添加"以管理员身份打开 ...
相关推荐
分享Android测试程序,使用Graphics.Camera进行3d旋转。
第二个应用于手机硬件中的相机相关的操作,本文讲述的是利用第一个Camera类实现中轴3D转换的卡牌翻转效果,开始之前,先看一下Android系统中的坐标系: 对应于三维坐标系中的三个方向,Camera提供了三种旋转方法: ...
10.1 Understanding 3D Graphics.... 198 10.2 Introducing OpenGL..... 199 10.3 Building an OpenGL Program...200 10.4 Rendering the Scene..... 202 10.5 Building a Model..... . . 206 10.6 Lights, ...
* Advanced development topics including security, IPC, advanced 2D / 3D graphics techniques, and user–hardware interaction. Who this book is for This book is for anyone interested in creating ...
项目中需要用到类似公告栏的控件,能用的基本不支持多行显示,于是只好自己动手,苦于没有自定义过一个像样的控件,借鉴Android公告条demo,实现了多行向上滚动的控件。...import android.graphics.Camera; import a
Extensive Media Support and 2D/3D Graphics 8 Optimized Memory and Process Management 8 Introducing the Open Handset Alliance 8 What Does Android Run On? 9 Why Develop for Android? 9 What Will ...
相机(Camera)实现3D效果源码,android.graphics.Camera 实现简单的3D效果,其实这个代码,是原来学习的时候搜到的不过都老早了忘记是哪里的了。顺便在里面加了些注释 。看着效果图 对照代码 就特别明了了,各种组合...
If that includes you, you'll learn about how Honeycomb has changed the game for Android graphics programming, and get your first taste of 3D programming on an Android tablet. Lights, camera, action! ...
----------------------------...• 优化的图形库 包括定制的 2D 图形库, 3D 图形库基于 OpenGL ES 1.0 (硬件加速可选) • SQLite SQLite SQLite SQLite 用作结构化的数据存储 • 多媒体支持 包括常见的音频、视频和...
7.1.4. 2D and 3D Graphics Acceleration 7.1.4.1 OpenGL ES 7.1.4.2 Vulkan 7.1.4.3 RenderScript 7.1.4.4 2D Graphics Acceleration 7.1.4.5 Wide-gamut Displays 7.1.5. Legacy Application Compatibility Mode ...
读者在学习本书的过程中,应尽量对照本书的框图和手头的Android源代码,这样可以达到事半功倍的效果。本书在重点代码中加上大量的注释,帮助读者阅读,对于非重点的代码,不占用本书的篇幅,读者可以参考开放的源...
5.5.3 androidgraphics:满足绘图需求 5.5.4 androidfastrenderview 5.6 androidgame:合并所有内容 5.7 小结 第6章 mr. nom入侵android 6.1 创建资源 6.2 建立项目 6.3 mrnomgame:主要活动 6.3.1 ...
It uses WebGL and #Three.js# to handle the 3D graphics and camera controls. See inline comments for tips. This code is purely experimental, so please keep that in mind when developing. Want to ...
6.4.3 android的图形包(graphics) 125 6.5 android的opengl系统与3d图形系统 125 6.5.1 opengl的本地代码 125 6.5.2 opengl的jni代码 130 6.5.3 opengl的java类 130 第7章 android的audio系统 132 7.1 audio系统综述...
Building a demo that puts you in 3D space 21 Adding enemies and projectiles to the 3D game 46 Developing graphics for your game 69 GETTING COMFORTABLE ........................................... 93 5 ...
+ Optimized graphics: 包含一个自定义的2D 图形库和基于 OpenGL ES 1.0 标准的3D 实现。 + SQLite: 数据库 + Media support: 通用的音频,视频和对各种图片格式的支持(MPEG4, H.264, MP3,AAC, AMR, JPG, PNG, GIF) ...
Android也可以通过Graphics下面的Camera可以实现3D效果,开始尝试着用这个做了一下,效果不理想,滑动之后各组文字之间的距离就变了,从立体空间来说这是合逻辑的,但是看着很别捏。IOS相机的滑动效果文字之间的间隔...
5.5.3 AndroidGraphics:满足 绘图需求 174 5.5.4 AndroidFastRenderView 178 5.6 AndroidGame:合并所有 内容 180 5.7 小结 184 第6章 Mr. Nom入侵Android 185 6.1 创建资源 185 6.2 建立项目 ...
+ Optimized graphics: 包含一个自定义的2D图形库和基于OpenGL ES 1.0 标准的3D实现。 + SQLite: 数据库 + Media support: 通用的音频,视频和对各种图片格式的支持(MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, ...
Using a practical and project-based approach, this Learning Path educates you about the specifics of AR and VR development using Unity 2018 and Unity 3D. You'll learn to integrate, animate, and ...