展讯平台图片滑动效果代码.doc_第1页
展讯平台图片滑动效果代码.doc_第2页
展讯平台图片滑动效果代码.doc_第3页
展讯平台图片滑动效果代码.doc_第4页
展讯平台图片滑动效果代码.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

#ifdef WIN32#include std_header.h#endif#include mmk_app.h#include mmk_kbd.h#include guilcd.h#include window_parse.h#include mainapp.h#include mmi_image.h#include guicommon.h#include mmi_text.h#include tb_dal.h#include mmidisplay_data.h#include mmi_menutable.h#include guimenu.h/#include mmisms_text.h#include mmi_image.h#include mmiset.h#include mmisms_api.h#include mmicl.h#include mmieng.h#include mmistk.h#include mmicc.h#include mmiphone.h#include mmicc_speeddial.h#include mmienvset.h#include mmi_appmsg.h#include mmi_subwintab.h#include guimsgbox.h#include guilabel.h#include mmk_timer.h#include mmi_default.h#include mmiudisk_export.h#include mmimms_export.h#include mmi_parse.h#include mmimsd.h#include mmi_textfun.h#include mmi_keylock.h#include mmisd_export.h#include mmiacc.h#include guiblock.h#include mmifm_export.h#include mmitv_out.h#include guibutton.h#ifndef WIN32#include gpio_prod_api.h#endif#include mmistk.h#include mmicalendar_main.h#include mmieng.h#include mmipb_export.h#ifdef BLUETOOTH_SUPPORT/#include mmibt_image.h#endif#include mmipub.h#include mmiidle_screensaver.h#include mmiidle_shortcut.h/#include mmiset_wintab.h/#include mmiset_display.h#include mmiset_id.h#include mmiebook.h#include guistatusbar.h#include mmialarm_id.h#include mmisms_id.h#include mms_image.h#include mmiset_id.h#include mmicc_id.h#include mmiota_image.h#include mmibt_export.h/#include mmiset_nv.h#include mmiset_text.h#include mmimp3.h#include mn_type.h#include mn_api.h#include mmipb_id.h#include mmimp3_id.h#include mmiacc_id.h#ifdef JAVA_SUPPORT#include mmijava_export.h#endif#include block_mem_def.h#include block_mem.h#include mmicountedtime_main.h#include mmi_wallpaper.h#include mmifmm.h#include mmidc.h#include mmischedule.h#include mmienvset_internal.h#include mmidc.h#include mmimenu.h#ifdef MMI_SPRITE_ENABLE#include mmiidle_sprite.h#endif#include mmikur.h#include mmk_msg.h#include guiwin.h#ifdef MMI_MOCOR_SAMPLE#include sample_main.h#endif#include ui_layer.h#include guires.h#include mmimtv_export.h#include mmiatv_export.h#include mmiidle_display.h#include guistring.h#include mmipdp_api.h#ifdef BROWSER_SUPPORT#include mmibrowser_api.h#endif#ifdef ASP_SUPPORT#include mmiasp_api.h#endif#include mmidcd_export.h#include guitab.h/#include mmifmm_text.h#include mmidm_export.h#ifdef WIFI_SUPPORT#include mmiwifi_api.h#ifdef WLAN_SUPPORT#include mmiwlan_image.h#else#include mmiwifi_image.h#endif#endif#ifdef DRM_SUPPORT#include mmidrm_export.h#endif#ifdef MCARE_MINI_SUPPORT#include mcfinterface.h#include Mcare_Interface.h#ifdef FLASH_SUPPORT#include mmiflash.h#endif#endif#ifdef QQ_SUPPORT#include mmiqq_export.h#endif#if (defined MMIWIDGET_SUPPORT) | (defined MMI_GRID_IDLE_SUPPORT)#include mmiwidget.h#include mmiwidget_export.h#endif#ifdef PUSH_EMAIL_SUPPORT #include mmimail.h#endif#ifdef WEATHER_SUPPORT#include mmiweather.h#endif#ifdef MMIEMAIL_SUPPORT#include mmiemail_export.h#endif#ifdef MMI_VIDEOWALLPAPER_SUPPORT#include mmiset_videowallpaper.h#endif#include mmk_gsensor.h#include mmiset_func.h/#include mmipb_internal.h/#ifdef MMI_DUAL_BATTERY_SUPPORT#include dualbat_drvapi.h/#endif#ifdef PDA_UI_DROPDOWN_WIN#include mmidropdownwin.h#endif#include guistatusbar_scrollmsg.h#include mmibt_text.h#include mmicl_internal.h#include mmisms_read.h#ifdef LIVE_WALLPAPER_FRAMEWORK_SUPPORT#include mmi_livewallpaper.h#endif#ifdef MMI_TASK_MANAGER#include mmi_applet_manager.h#endif#include jpeg_interface.h#define SCREEN_WIDTH 320#define SCREEN_HEIGHT 480#define PICMOVE_TIME 30#define PIVMOVE_PERWIDTH 80 /图片typedef enumLC_MOVE_LEFT =0,LC_MOVE_RIGHT,LC_MOVE_MAXLC_MOVE_DERECTION;/图片在滑动时的参数结构体typedef struct _mov_infoGUI_POINT_T down_point;GUI_POINT_T move_point;GUI_POINT_T up_point;BOOLEAN is_move;BOOLEAN allow_recvPressmsg; /是否允许接收触屏消息BOOLEAN is_pressdown; /判断是否按了down消息int move_len;int end_dot;LC_MOVE_DERECTION mov_derection;move_info;typedef struct _lc_fileuint8 *load_buf;uint32 load_buflen;uint32 file_width;uint32 file_height;uint8 *file_path;uint32 file_pos;load_file;typedef struct _pic_msguint8 *show_filebuf;uint32 show_file_len;pic_msg;typedef struct _screen_picuint8 *main_ptr;int currpos;screen_pic;typedef struct _mov_timeuint8 mov_timeid; /滑动定时器 uint8 mov_timeisopen; /判断滑动定时器是否开启 int times_move; /自定时器开启到现在已有的次数smov_time;screen_pic screen_movepic;pic_msg pre_pic,back_pic,temp_pic;load_file lc_loadfile_pic;uint8 *filepath =E:Photos; /图片存储路径int the_lastfile =20;int the_firstfile = 1;int the_currfile;move_info pic_move_info;smov_time time_info;void lc_move_createwin();LOCAL MMI_RESULT_E lc_handle_picmove(MMI_WIN_ID_T win_id,MMI_MESSAGE_ID_E msg_id,DPARAM param);/获取图片名称LOCAL uint8* lc_move_getfilename(int file_num);/分配内存LOCAL BOOLEAN lc_move_memalloc();LOCAL void lc_move_freemem();/从T卡中读取文件LOCAL BOOLEAN lc_move_loadfile(uint8 *file);BOOLEAN lc_move_DecodeImageFileB(GUIANIM_TYPE_E image_type, uint8 *data_buffer, uint32 block_size,uint32 dest_width, uint32 dest_height,uint8 *loadbuf,uint32 load_len);/释放从T卡中读取图片的内存LOCAL void lc_move_freeloadbuf();/处理触屏down消息void lc_move_handleTipDown(MMI_WIN_ID_T win_id,DPARAM m_param);/处理up消息void lc_move_handleTipUp(MMI_WIN_ID_T win_id,DPARAM u_param);/处理timer消息void lc_move_handleTimerMsg(MMI_WIN_ID_T win_id);/处理触屏move消息void lc_move_handleTipMove(MMI_WIN_ID_T win_id,DPARAM m_param);/开启滑动定时器void lc_move_createTime();/关闭定时器void lc_move_stopTime();BOOLEAN lc_move_getpic(BOOLEAN is_add);LOCAL BOOLEAN lc_move_picinit();/把图片显示到屏幕上LOCAL void lc_move_showpicto_Screen(uint8 *srcptr,uint32 srcnun,uint8 *desptr);/图片在滑动时,把图片拷贝到屏幕上LOCAL void lc_move_copyto_Screen(uint16 *m_bufl,uint16 *m_buft,uint16 *m_bufr,int32 m_start,uint16 *des);#if 0void ma_dbg_info(const char *fmt, .) SFS_HANDLE FH = 0; char asc_path64 =E:dbg.txt; wchar ucs_path64 = 0; uint32 written; int length = 0; char log_buf1024 = 0;/*LOG缓冲区大小*/ va_list args; if (fmt = NULL | strlen(fmt) = 0)return ; va_start(args, fmt); vsprintf(log_buf,fmt,args); va_end(args); GUI_GBToWstr(ucs_path, asc_path,strlen(asc_path); #if 0 if(!b_create_log_file) FH = MMIFILE_CreateFile(wchar *)ucs_path, SFS_MODE_CREATE_ALWAYS,0,0); b_create_log_file = TRUE; #endif/ else FH = MMIFILE_CreateFile(wchar *)ucs_path, SFS_MODE_OPEN_ALWAYS| SFS_MODE_WRITE,0,0); length = strlen(const char*)log_buf); if (FH 0) MMIFILE_SetFilePointer(FH, 0, MMIFILE_SEEK_END); MMIFILE_WriteFile(FH, (void*)log_buf,length, &written,PNULL); MMIFILE_CloseFile(FH); #endifWINDOW_TABLE(LC_TEST_TABLE) =WIN_ID(LC_TEST_ID),WIN_FUNC(uint32)lc_handle_picmove),WIN_HIDE_STATUS,WIN_MOVE_STYLE(MOVE_FORBIDDEN),END_WIN;void lc_move_createwin() MMK_CreateWin(uint32*)LC_TEST_TABLE,NULL);MMI_RESULT_E lc_handle_picmove(MMI_WIN_ID_T win_id,MMI_MESSAGE_ID_E msg_id,DPARAM param)MMI_RESULT_E ret = MMI_RESULT_FALSE;GUI_RECT_T te_rect = 0,0,SCREEN_WIDTH,SCREEN_HEIGHT;GUI_LCD_DEV_INFO te_dev = GUI_MAIN_LCD_ID,GUI_BLOCK_MAIN;uint32 num;num = SCREEN_WIDTH *SCREEN_HEIGHT*2;switch(msg_id)case MSG_OPEN_WINDOW:lc_move_picinit();lc_move_loadfile(lc_loadfile_pic.file_path);lc_move_DecodeImageFileB(GUIANIM_TYPE_IMAGE_JPG,temp_pic.show_filebuf,temp_pic.show_file_len,lc_loadfile_pic.file_width,lc_loadfile_pic.file_height,lc_loadfile_pic.load_buf,lc_loadfile_pic.load_buflen); lc_move_freeloadbuf();lc_move_showpicto_Screen(temp_pic.show_filebuf,num,screen_movepic.main_ptr);the_currfile-;lc_loadfile_pic.file_path = lc_move_getfilename(the_currfile);lc_move_loadfile(lc_loadfile_pic.file_path);lc_move_DecodeImageFileB(GUIANIM_TYPE_IMAGE_JPG,pre_pic.show_filebuf,pre_pic.show_file_len,lc_loadfile_pic.file_width,lc_loadfile_pic.file_height,lc_loadfile_pic.load_buf,lc_loadfile_pic.load_buflen);lc_move_freeloadbuf();/lc_move_createTime();/lc_move_copyto_Screen(pre_pic.show_filebuf,temp_pic.show_filebuf,back_pic.show_filebuf,k_s,screen_movepic.main_ptr); /MMITHEME_StoreUpdateRect(&te_dev,te_rect); /MMITHEME_UpdateRect();break; case MSG_TIMER: lc_move_handleTimerMsg(win_id);break;case MSG_TP_PRESS_DOWN: lc_move_handleTipDown(win_id,param);break;case MSG_TP_PRESS_MOVE: lc_move_handleTipMove(win_id,param);break;case MSG_TP_PRESS_UP:lc_move_handleTipUp(win_id,param);break;case MSG_APP_RED:ret = MMI_RESULT_FALSE;break;case MSG_CLOSE_WINDOW:lc_move_freemem();MMK_CloseWin(LC_TEST_ID);break;default: ret = MMI_RESULT_FALSE; return ret;/启动定时器void lc_move_createTime()if(0 = time_info.mov_timeisopen)time_info.mov_timeid = MMK_CreateTimer(PICMOVE_TIME,TRUE);time_info.mov_timeisopen = 1;/关闭定时器void lc_move_stopTime()if(time_info.mov_timeisopen = 1) MMK_StopTimer(time_info.mov_timeid); time_info.mov_timeisopen = 0; time_info.mov_timeid = 0;BOOLEAN lc_move_getpic(BOOLEAN is_add)int temfile;if(TRUE = is_add)temfile = the_currfile + 3;if(temfile the_lastfile)return FALSE;the_currfile +;elsethe_currfile -;temfile = the_currfile;if(temfile the_firstfile)return FALSE;lc_loadfile_pic.file_path = lc_move_getfilename(temfile);lc_move_loadfile(lc_loadfile_pic.file_path);return TRUE;/处理定时器消息void lc_move_handleTimerMsg(MMI_WIN_ID_T win_id)uint32 to_width,haf_width,onef_width;uint32 pic_total_num; GUI_RECT_T tim_rect = 0,0,SCREEN_WIDTH,SCREEN_HEIGHT;GUI_LCD_DEV_INFO tim_dev = GUI_MAIN_LCD_ID,GUI_BLOCK_MAIN;to_width = SCREEN_WIDTH1;onef_width = to_width - haf_width;pic_total_num = SCREEN_WIDTH*SCREEN_HEIGHT*2;time_info.times_move +;if(LC_MOVE_LEFT = pic_move_info.mov_derection)uint32 t1,t2;pic_move_info.move_len -= PIVMOVE_PERWIDTH;if(pic_move_info.end_dothaf_width)/if(2 = time_info.times_move)/t1 = SCI_GetTickCount();/t2 = SCI_GetTickCount(); /ma_dbg_info(read file time: %ld,(t2-t1);/time_info.times_move = -20;/if(pic_move_info.move_len=SCREEN_WIDTH)if(pic_move_info.move_lenonef_width)#if 0if(2 = time_info.times_move)lc_move_DecodeImageFileB(GUIANIM_TYPE_IMAGE_JPG,temp_pic.show_filebuf,temp_pic.show_file_len,lc_loadfile_pic.file_width,lc_loadfile_pic.file_height,lc_loadfile_pic.load_buf,lc_loadfile_pic.load_buflen);time_info.times_move = -20;lc_move_freeloadbuf();#endifif(pic_move_info.move_len=to_width)lc_move_stopTime();#if 0if(time_info.times_move = 1)lc_move_DecodeImageFileB(GUIANIM_TYPE_IMAGE_JPG,temp_pic.show_filebuf,temp_pic.show_file_len,lc_loadfile_pic.file_width, lc_loadfile_pic.file_height,lc_loadfile_pic.load_buf,lc_loadfile_pic.load_buflen); time_info.times_move = -20; lc_move_freeloadbuf();#endifpic_move_info.move_len = to_width; lc_move_copyto_Screen(pre_pic.show_filebuf,pre_pic.show_filebuf,back_pic.show_filebuf, pic_move_info.move_len,screen_movepic.main_ptr); MMITHEME_StoreUpdateRect(&tim_dev,tim_rect); MMITHEME_UpdateRect();lc_move_getpic(TRUE);lc_move_DecodeImageFileB(GUIANIM_TYPE_IMAGE_JPG,temp_pic.show_filebuf,temp_pic.show_file_len,lc_loadfile_pic.file_width,lc_loadfile_pic.file_height,lc_loadfile_pic.load_buf,lc_loadfile_pic.load_buflen); lc_move_freeloadbuf();SCI_MEMCPY(back_pic.show_filebuf,temp_pic.show_filebuf,pic_total_num);SCI_MEMCPY(temp_pic.show_filebuf,screen_movepic.main_ptr,pic_total_num);pic_move_info.allow_recvPressmsg = TRUE;return; lc_move_copyto_Screen(pre_pic.show_filebuf,pre_pic.show_filebuf,back_pic.show_filebuf, pic_move_info.move_len,screen_movepic.main_ptr); MMITHEME_StoreUpdateRect(&tim_dev,tim_rect); MMITHEME_UpdateRect();else if(pic_move_info.end_dot=SCREEN_WIDTH)lc_move_stopTime();pic_move_info.move_len = SCREEN_WIDTH; lc_move_copyto_Screen(pre_pic.show_filebuf,temp_pic.show_filebuf,back_pic.show_filebuf, pic_move_info.move_len,screen_movepic.main_ptr); MMITHEME_StoreUpdateRect(&tim_dev,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论