此问题的原因是默认设计,可以修改为滚动显示方式:
修改VappMmsViewerPage::draw函数,增加黄色部分
mmi_ucs2cpy((S8 *)ucs, (S8 *)get_string(STR_ID_VAPP_MMS_SUBJECT)) ;
txt.loadFromMem(ucs);
m_subject_txt->setAutoResized(VFX_TRUE);
m_subject_txt->setAlignMode(VfxTextFrame::ALIGN_MODE_LEFT);
m_subject_txt->setFont(font);
m_subject_txt->setString(txt);
if(m_contact_bar && m_contact_bar->getSize().height > 0)
{
m_subject_txt->setPos(VfxPoint(m_subject_txt->getRect().getX(), m_contact_bar->getRect().getMaxY() +
SUBJECT_UPPER_MARGIN - m_contact_bar->getShadowHeight()));
}
else
{
m_subject_txt->setPos(VfxPoint(m_subject_txt->getRect().getX(), m_contact_bar->getRect().getMaxY() +
SUBJECT_UPPER_MARGIN));
}
m_subject_txt->setSize(getSize().width - m_subject_txt->getRect().getX(), m_subject_txt->getSize().height);
mmi_ucs2ncpy((S8 *)ucs, (S8 *)m_data->getMsgInfo()->subject, MMA_MAX_SUBJECT_LEN);
txt.loadFromMem(ucs);
VcpMarquee *marquee_subject;
VFX_OBJ_CREATE(marquee_subject, VcpMarquee, this);
marquee_subject->setPos(VfxPoint(m_subject_txt->getRect().getMaxX(), m_subject_txt->getRect().getY()));
marquee_subject->setSize(getSize().width - marquee_subject->getRect().getX(), m_subject_txt->getSize().height);
marquee_subject->setHalign(VcpMarquee::HALIGN_LEFT);
marquee_subject->setMovableFrame(txt, font);
marquee_subject->setAlignParent(VFX_FRAME_ALIGNER_SIDE_LEFT, VFX_FRAME_ALIGNER_MODE_SIDE);
marquee_subject->setAlignParent(VFX_FRAME_ALIGNER_SIDE_RIGHT, VFX_FRAME_ALIGNER_MODE_SIDE);
marquee_subject->setTextColor(VFX_COLOR_BLACK);
marquee_subject->startScroll();
修改VappMmsViewerPage::draw函数,增加黄色部分
mmi_ucs2cpy((S8 *)ucs, (S8 *)get_string(STR_ID_VAPP_MMS_SUBJECT)) ;
txt.loadFromMem(ucs);
m_subject_txt->setAutoResized(VFX_TRUE);
m_subject_txt->setAlignMode(VfxTextFrame::ALIGN_MODE_LEFT);
m_subject_txt->setFont(font);
m_subject_txt->setString(txt);
if(m_contact_bar && m_contact_bar->getSize().height > 0)
{
m_subject_txt->setPos(VfxPoint(m_subject_txt->getRect().getX(), m_contact_bar->getRect().getMaxY() +
SUBJECT_UPPER_MARGIN - m_contact_bar->getShadowHeight()));
}
else
{
m_subject_txt->setPos(VfxPoint(m_subject_txt->getRect().getX(), m_contact_bar->getRect().getMaxY() +
SUBJECT_UPPER_MARGIN));
}
m_subject_txt->setSize(getSize().width - m_subject_txt->getRect().getX(), m_subject_txt->getSize().height);
mmi_ucs2ncpy((S8 *)ucs, (S8 *)m_data->getMsgInfo()->subject, MMA_MAX_SUBJECT_LEN);
txt.loadFromMem(ucs);
VcpMarquee *marquee_subject;
VFX_OBJ_CREATE(marquee_subject, VcpMarquee, this);
marquee_subject->setPos(VfxPoint(m_subject_txt->getRect().getMaxX(), m_subject_txt->getRect().getY()));
marquee_subject->setSize(getSize().width - marquee_subject->getRect().getX(), m_subject_txt->getSize().height);
marquee_subject->setHalign(VcpMarquee::HALIGN_LEFT);
marquee_subject->setMovableFrame(txt, font);
marquee_subject->setAlignParent(VFX_FRAME_ALIGNER_SIDE_LEFT, VFX_FRAME_ALIGNER_MODE_SIDE);
marquee_subject->setAlignParent(VFX_FRAME_ALIGNER_SIDE_RIGHT, VFX_FRAME_ALIGNER_MODE_SIDE);
marquee_subject->setTextColor(VFX_COLOR_BLACK);
marquee_subject->startScroll();