2012-10-03 122 views
1

我开发了一个使用LWUIT选项卡的Rss应用程序,我想在我的Lwuit选项卡屏幕上显示Rss Feed标题和图像,但是当我运行我的应用程序时,显示三个列表(标题与图像)项目成功,之后,我面临java.lang.OutOfMemoryError(堆栈跟踪不完整)虽然有列表项存在吗?任何人都可以帮助......谢谢...LWUIT未捕获的异常:java.lang.OutOfMemoryError(堆栈跟踪不完整)

这里我的代码:

public class Process { 
    protected XMLMidlet midlet; 

    Form form1; 
    Image image; 
    Tabs tabs; 
    private List myNewsList; 
    private Vector topnews; 
    private Vector topstory; 
    private Command cmdExit; 
    private Command m_backCommand; 
     private List newsList; 
     private Form form2; 
    Process(XMLMidlet midlet) throws IOException { 
      this.midlet=midlet; 
      topnews = new Vector(); 
     topstory = new Vector(); 
     tabs = new Tabs(); 
     form1 = new Form(); 
     form2=new Form(); 
      try { 
      newsList = new List(topnews); 
      newsList.setScrollVisible(false); 
      newsList.setRenderer(new NewsListCellRenderer()); 
     m_backCommand = new Command("Back"); 
     cmdExit = new Command("EXIT"); 
      tabs.addTab("Topstory", newsList); 
      form1.addComponent(BorderLayout.CENTER, tabs);       
} 
catch(Exception e){ 
    e.printStackTrace(); 
}   } 

    public void process() { 
     try{ 
    String url = "http://www.teluguone.com/news/tonefeeds/news/news-1.rss"; 

     form1.show(); 
     ParseThread myThread = new ParseThread(this); 
     myThread.getXMLFeed(url); 

     } catch (Exception e) { 

     } 

    } 
    public void addNews(News newsItem) { 

try{ 
      topnews.addElement(newsItem); 
      newsList.addActionListener(new ActionListener() { 

       public void actionPerformed(ActionEvent ae) { 

        List source = (List) ae.getSource(); 
        News selectedNewsItem = (News) source.getSelectedItem(); 
        if (selectedNewsItem != null) { 
         displayCompleteNewsScreen(selectedNewsItem); 

        } 

       } 


      }); 
} 
catch(OutOfMemoryError r){ 

} 
     form1.show(); 


    } 


    private void displayCompleteNewsScreen(News detailNews) { 

     try{ 
     form2.removeAll(); 
     form2.repaint(); 
     form2.addCommand(m_backCommand); 
     form2.addCommandListener(new ActionListener() { 

      public void actionPerformed(ActionEvent ae) { 
       form1.show(); 
      } 
     }); 

     HTMLComponent com=new HTMLComponent(); 
     com.setPreferredSize(new Dimension(300,300)); 
com.setShowImages(false); 

     com.setBodyText(detailNews.getDescription()); 
     form2.addComponent(com); 
     //form2.addComponent(big); 
     } 
     catch(OutOfMemoryError e){ 

     } 
     form2.show(); 

    } 



} 

回答

2

有多大的图像?我们在这里谈论什么手机?

我打赌你得到的图像在显示之前没有被缩小。我相信LWUIT有一些方法可以缩小图像的大小。请记住处理将图像添加到表单后创建的临时图像。

+0

HI lan Gil,你可以检查这个http://stackoverflow.com/questions/12871421/lwuit-htmlcomponent,如果你看看这个,我能够显示文本,但我无法显示图片 – String

+0

Afetr我解析,我得到包含描述以及图像标签(图像以及描述)的htmltext,以在我的诺基亚sdk 3.0和诺基亚sdk 2.0上显示它... – String

+0

你能告诉我如何我可以缩放从HTMLsString获得的图像... – String