Venus UI --- How to create a screen
2011-03-16 17:08
281 查看
下面是一个用Venus写的锁屏界面效果图:
![](http://static3.photo.sina.com.cn/middle/76bc6f49g9d756b1fb082&690)
如何用Venus写一Screen:
1、创建一个Screen Class
A、首先要在相应的路劲下创建头文件:venusmmi/app/XXX/vapp_XXX_scr.h ,
该头文件中要包含#include "vfx_uc_include.h"和#include "vcp_include.h";
B、在头文件目录下创建vapp_XXX_scr.cpp文件
C、在该头文件中创建新的Screen Class
class VappXxxScr:public VcpAppScr //继承的类根据你的需求而定
{
public:
VappXxxScr();//构造函数 可以有多个构造函数
public:
virtual void onInit();//初始化函数 在创建对象时 会执行 用于显示Screen
virtual void onDeinit();//相当于析构函数 在退出该屏幕前执行 用来做“清理善后” 的工作
}
D、在vapp_XXX_scr.cpp中定义相应的函数
void VappXxxScr::onInit()
{
VfxImageFrame* m_Image;
//Init VcpAppScr first
VcpAppScr::onInit();
//下面就可以开始进行自己的工作了,比如可以画张图片
VFX_OBJ_CREATE(m_Image, VfxImageFrame, this);//创建一个VfxImageFrame对象
m_Image->setResId(VAPP_SHELL_IMG_XXX);
m_Image->setSize(MAIN_LCD_DEVICE_WIDTH, MAIN_LCD_DEVICE_HEIGHT);
m_Image->setPos(0, 0);
}
void VappXxxScr::onDeinit()
{
VcpAppScr::onDeinit();//必须的
}
2、Connect to Pluto MMI
在创建了Screen Class之后,那么下面我们就要有被Pluto MMI调用的相关接口,这样pluto才可以利用
我们的Screen
A、首先新建venusmmi/pluto_adapter/XXX/vadp_p2v_XXX.cpp
venusmmi/pluto_adapter/XXX/vadp_p2v_XXX.h
static VappXxxScr *g_vadp_p2v_Xxx_ptr;
void vadp_p2v_Xxx_init ()
{
// Init VcpAppScr first
VcpAppScr::initalize ();
// Create application screen
VFX_OBJ_CREATE(g_vadp_p2v_Xxx_ptr, VappXxxScr, VcpAppScr::getContext());
};
void vadp_p2v_Xxx_deinit ()
{
// Close application screen
VFX_OBJ_CLOSE(g_vadp_p2v_Xxx_ptr);
// Deinit VcpAppScr first
VcpAppScr::deinitalize ();
};
3、最后记得要在make/venusmmi下加入相应的路径
如何用Venus写一Screen:
1、创建一个Screen Class
A、首先要在相应的路劲下创建头文件:venusmmi/app/XXX/vapp_XXX_scr.h ,
该头文件中要包含#include "vfx_uc_include.h"和#include "vcp_include.h";
B、在头文件目录下创建vapp_XXX_scr.cpp文件
C、在该头文件中创建新的Screen Class
class VappXxxScr:public VcpAppScr //继承的类根据你的需求而定
{
public:
VappXxxScr();//构造函数 可以有多个构造函数
public:
virtual void onInit();//初始化函数 在创建对象时 会执行 用于显示Screen
virtual void onDeinit();//相当于析构函数 在退出该屏幕前执行 用来做“清理善后” 的工作
}
D、在vapp_XXX_scr.cpp中定义相应的函数
void VappXxxScr::onInit()
{
VfxImageFrame* m_Image;
//Init VcpAppScr first
VcpAppScr::onInit();
//下面就可以开始进行自己的工作了,比如可以画张图片
VFX_OBJ_CREATE(m_Image, VfxImageFrame, this);//创建一个VfxImageFrame对象
m_Image->setResId(VAPP_SHELL_IMG_XXX);
m_Image->setSize(MAIN_LCD_DEVICE_WIDTH, MAIN_LCD_DEVICE_HEIGHT);
m_Image->setPos(0, 0);
}
void VappXxxScr::onDeinit()
{
VcpAppScr::onDeinit();//必须的
}
2、Connect to Pluto MMI
在创建了Screen Class之后,那么下面我们就要有被Pluto MMI调用的相关接口,这样pluto才可以利用
我们的Screen
A、首先新建venusmmi/pluto_adapter/XXX/vadp_p2v_XXX.cpp
venusmmi/pluto_adapter/XXX/vadp_p2v_XXX.h
static VappXxxScr *g_vadp_p2v_Xxx_ptr;
void vadp_p2v_Xxx_init ()
{
// Init VcpAppScr first
VcpAppScr::initalize ();
// Create application screen
VFX_OBJ_CREATE(g_vadp_p2v_Xxx_ptr, VappXxxScr, VcpAppScr::getContext());
};
void vadp_p2v_Xxx_deinit ()
{
// Close application screen
VFX_OBJ_CLOSE(g_vadp_p2v_Xxx_ptr);
// Deinit VcpAppScr first
VcpAppScr::deinitalize ();
};
3、最后记得要在make/venusmmi下加入相应的路径
相关文章推荐
- How to Create Screen/Window in ADempiere
- how to create shortcut on home screen
- How To Create A Data Entry Screen
- [Ray]How to use CString to create a font family
- How To Create Alternate Background In WPF?
- How to create physical standby database with 11g RMAN DUPLICATE FROM ACTIVE DATABASE [ID 747250.1]
- How to hide credential providers from Login Screen for Windows 7
- How to Make an Activity Fullscreen
- How to Customize Mac Terminal Startup Screen Message
- how to create a Makefile
- Multi-Threading: How to Create Threads in UE4
- How to override create,write,unlink method in Odoo v8
- How to easily create popup menu for DevExpress treelist z
- Android: How to Capture Screen in Gingerbread(2.3中实现截屏) .
- How to create custom price in Magento?
- Docker - How to create a custom database from docker mysql image
- How to take partial screenshot with Selenium WebDriver in python
- How To Create Primary Key Partitioned Indexes
- How To Create Struts 2 helloWorld on Eclipse(新建struts2项目)
- How To Create a Featured Product