找回密码
 注册
搜索
查看: 1784|回复: 17

请教,如何实现屏幕的旋转

[复制链接]
发表于 2009-3-11 10:18:07 | 显示全部楼层 |阅读模式
mtk上手机的屏幕的旋转是如何实现的?
希望讨论些原理问题。但不要太空洞。
比如240×320 到320×240的旋转,屏幕是如何来实现这个效果的?

比如:
1.菜单是怎么旋转的,如果实现的?
2.lcd怎么旋转,要做哪些设置?
3.要修改的地方?是不是所有的控件都要旋转?
发表于 2009-3-11 12:10:47 | 显示全部楼层
我想你可能是要做横屏320x240手机,以前我也做过,我的做法是在编译参数修改
MAIN_LCD_SIZE = 320x240,然后只需要在lcd的驱动层修改实现横屏显示,mmi层只需要适当调整一些显示位置就可以了
点评回复

使用道具 举报

 楼主| 发表于 2009-3-11 12:18:53 | 显示全部楼层
以下是引用ghwhz在2009-3-11 12:10:47的发言:
我想你可能是要做横屏320x240手机,以前我也做过,我的做法是在编译参数修改
MAIN_LCD_SIZE = 320x240,然后只需要在lcd的驱动层修改实现横屏显示,mmi层只需要适当调整一些显示位置就可以了


上面说的MAIN_LCD_SIZE = 320x240主要是什么作用?
点评回复

使用道具 举报

发表于 2009-3-11 12:36:00 | 显示全部楼层
编译时根据这个参数会找到图片包(相应的图片包也要由原来文件夹的名字“PLUTO240X320”改为“PLUTO320X240"当然图片也要做相应修改咯),还有就是在文件lcd_sw_inc.h里的LCD_WIDTH和LCD_HEIGHT也做相应修改。
点评回复

使用道具 举报

 楼主| 发表于 2009-3-12 11:57:59 | 显示全部楼层
谁能从原理上来说下,横跟竖的区别,已经为什么要做这样的改动?
点评回复

使用道具 举报

 楼主| 发表于 2009-3-17 08:41:16 | 显示全部楼层
自己顶一个!
点评回复

使用道具 举报

发表于 2009-3-17 19:22:34 | 显示全部楼层
没有看明白,不知道你要的是特效还是什么。特效的话MTK一般使用的BUFFER来做的
点评回复

使用道具 举报

发表于 2009-3-18 13:46:24 | 显示全部楼层

在这里修改啊,简单的很。

void gdi_lcd_init(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    GDI_ENTER_CRITICAL_SECTION(gdi_lcd_init)
    S32 i = 0;

    memset(GDI_LCD_ARRAY, 0, sizeof(GDI_LCD_ARRAY));

    GDI_LCD_ARRAY.act_handle = GDI_LCD_MAIN_LCD_HANDLE;
    GDI_LCD_ARRAY.act_width = GDI_LCD_WIDTH;
    GDI_LCD_ARRAY.act_height = GDI_LCD_HEIGHT;
    GDI_LCD_ARRAY.act_layer_handle = GDI_LAYER_MAIN_BASE_LAYER_HANDLE;
    GDI_LCD_ARRAY.cf = gdi_get_color_format(DRV_MAINLCD_BIT_PER_PIXEL);
    GDI_LCD_ARRAY.is_freeze = FALSE;
    GDI_LCD_ARRAY.lcd_type = GDI_LCD_TYPE_LCD;
    GDI_LCD_ARRAY.bind_handle = GDI_NULL_HANDLE;
    GDI_LCD_ARRAY.rotate_value = GDI_LCD_LAYER_ROTATE_0[/COLOR];
    GDI_LCD_ARRAY.rotate_by_layer = FALSE;
.......
点评回复

使用道具 举报

发表于 2009-3-19 23:45:53 | 显示全部楼层
好简单的问题呀, MTK平台上在相册应用程序里, 查看的时候, 可以转屏, 看一下就知道了, 搞这么复杂?????
点评回复

使用道具 举报

发表于 2009-3-20 11:07:06 | 显示全部楼层
顶了,都是高手[em01]
点评回复

使用道具 举报

 楼主| 发表于 2009-3-27 09:14:02 | 显示全部楼层
以下是引用scitel在2009-3-19 23:45:53的发言:
好简单的问题呀, MTK平台上在相册应用程序里, 查看的时候, 可以转屏, 看一下就知道了, 搞这么复杂?????

这个比较好。有比较。
点评回复

使用道具 举报

发表于 2009-4-2 15:46:03 | 显示全部楼层
[em04]
点评回复

使用道具 举报

发表于 2009-4-3 14:27:54 | 显示全部楼层
调用函数:void mmi_frm_screen_rotate(mmi_frm_screen_rotate_enum rotation),
屏幕坐标以及四个方向键都会根据你传入的 rotation 参数进行旋转。
点评回复

使用道具 举报

发表于 2009-4-6 22:15:14 | 显示全部楼层
顶一个!
点评回复

使用道具 举报

发表于 2009-4-7 12:00:51 | 显示全部楼层
屏幕旋转是很容易的, 你在装配的时候把屏幕跳转90或者180度就行了
点评回复

使用道具 举报

发表于 2009-4-7 18:58:14 | 显示全部楼层
以下是引用don2008在2009-4-7 12:00:51的发言:
屏幕旋转是很容易的, 你在装配的时候把屏幕跳转90或者180度就行了

果然是强人啊![em11][em11]
点评回复

使用道具 举报

发表于 2010-9-10 19:06:59 | 显示全部楼层
以下是引用BrayL在2009-4-7 18:58:14的发言:

果然是强人啊![em11][em11]



传说中的硬件牛人[em07]
点评回复

使用道具 举报

发表于 2010-9-10 19:10:01 | 显示全部楼层
以下是引用BrayL在2009-4-7 18:58:14的发言:

果然是强人啊![em11][em11]



传说中的硬件牛人[em07]
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-10-7 21:46 , Processed in 0.050838 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表