File tempFile = Environment.getExternalStorageDirectory()
					.getAbsoluteFile();
			File file = new File(tempFile, (format.format(date) + ".xml"));
			HttpClient client = new DefaultHttpClient();
			HttpGet get = new HttpGet(RSS_URL);
			try {
				HttpResponse response = client.execute(get);
				if (response.getStatusLine().getStatusCode() == 200) {
					InputStream inputStream = response.getEntity().getContent();
					FileOutputStream fos = new FileOutputStream(file);
					int byteread = 0;
					byte[] buffer = new byte[1024];
					while ((byteread = inputStream.read(buffer)) != -1) {
						fos.write(buffer, 0, byteread);
					}
					fos.flush();
					fos.close();
					inputStream.close();
				}
			} catch (ClientProtocolException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}                        list=new ArrayList<Map<String,RssItem>>();
			SAXReader reader = new SAXReader();
			try {
				Document document = reader.read(file); // 通过reader对象的read方法获得document对象
				Element rootelement = document.getRootElement(); // 获得根节点
				Element channelelement = rootelement.element("channel");// 获得channel节点
				Iterator channel_iterator = channelelement.elementIterator();
				
				 // 准备第一个模板,将需要改变的时间格式   
				String pat1 = "EEE, dd MMM yyyy HH:mm:ss Z" ;    
		        // 准备第二个模板,将提取后的日期数字变为指定的格式    
		        String pat2 = "yyyy年MM月dd日 HH时mm分" ;
		        Locale local=Locale.ENGLISH;
		        SimpleDateFormat sdf1 = new SimpleDateFormat(pat1,local) ;        // 实例化模板对象    
		        SimpleDateFormat sdf2 = new SimpleDateFormat(pat2) ;        // 实例化模板对象    
				while (channel_iterator.hasNext()) {
					//只能放在map里,不能发在对象里
					Map<String,RssItem>map1=new HashMap<String,RssItem>();
					Element itemelement = (Element) channel_iterator.next();
					if ("item".equals(itemelement.getName())) {
						Iterator item_iterator = itemelement.elementIterator();
						rssItem = new RssItem();
						while (item_iterator.hasNext()) {
							
							Element itemChild = (Element) item_iterator.next();
							
							if ("title".equals(itemChild.getName())) {
								
								rssItem.setTitle(itemChild.getStringValue());
								Log.i("RSS", itemChild.getStringValue());
								
							}
							if ("link".equals(itemChild.getName())) {
								rssItem.setLink(itemChild.getStringValue());
								Log.i("RSS", itemChild.getStringValue());
							}
							if ("description".equals(itemChild.getName())) {
								rssItem.setDescription(itemChild
										.getStringValue());
								Log.i("RSS", itemChild.getStringValue());
								if (getImgStr(itemChild.getStringValue())!=null) {
									//区第一个的url地址
									rssItem.setImage(getImgStr(itemChild.getStringValue()));
								}else{
									rssItem.setImage("");
								}
								
								
								
							}
							if ("pubDate".equals(itemChild.getName())) {
								
								Date date1= sdf1.parse(itemChild.getStringValue());
								String pubDate=sdf2.format(date1);
								rssItem.setPubDate(pubDate);
								Log.i("RSS", pubDate);
							}
							if ("author".equals(itemChild.getName())) {
								
								rssItem.setAuthor(itemChild.getStringValue());
								Log.i("RSS", itemChild.getStringValue());
							}
							
						}
						if (rssItem.getImage().equals("")) {
							
						}else {
							map1.put("rssItem", rssItem);
							list.add(map1);
						}
						
						//feed.addItem(map1);
						
						
					}
				}
				
			} catch (DocumentException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (ParseException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
			 Message message = new Message();
			 message.what = 1;
			 handler.sendMessage(message);
			 RSS_URL=null;
		}        String a="Fri, 14 Aug 2015 02:20:10 +0800";//
	String pat1 = "EEE, dd MMM yyyy HH:mm:ss Z" ;    //EEE, dd MMM yyyy HH:mm:ss Z
        // 准备第二个模板,将提取后的日期数字变为指定的格式    
        String pat2 = "yyyy年MM月dd日 HH时mm分ss秒SSS毫秒" ;  //MOTH  
        //由于local生成很费时间,提前生成
        Locale local=Locale.ENGLISH;
        SimpleDateFormat sdf1 = new SimpleDateFormat(pat1,local) ;        // 实例化模板对象    
        SimpleDateFormat sdf2 = new SimpleDateFormat(pat2) ;        // 实例化模板对象    
        try {
			Date date= sdf1.parse(a);
			System.out.println(sdf2.format(date));
		} catch (ParseException e) {
			e.printStackTrace();
		}   
对于这个应该都会很常用。//是内容与手机适配 bodyHtml.getSettings().setUseWideViewPort(true); bodyHtml.getSettings().setLoadWithOverviewMode(true);这样确实可以把图片变得适合手机大小,但是字体随着图片同样的变小了,因此我们需要把字体调大:
//设置默认的字体大小 bodyHtml.getSettings().setDefaultFontSize(40);这虽然不是最佳解决办法,应该在RSS里文章的内容写设定好图片的最大大小,但如果在重新修改img标签,会让图片多的文章加载变得慢,因此只能委曲求全应这个办法,(网上写的大多数方法还是不能解决我的需求,还是在泡上在网上的日子找到解决的办法,该网站做的不错,风格我喜欢的类型,简洁风格)把全部代码显示如下:
                Intent itent=getIntent();
		//文章内容
		String title=itent.getStringExtra("content");
		
		//去除超链接,保留字体
		String regex="<\\s*a.*?/a\\s*>";
		title=title.replaceAll(regex, "");
		
		//添加html标头
		String news="<html>"+title+"<html>";
		
		//得到WebView组件
	    WebView bodyHtml=(WebView)this.findViewById(R.id.wv_paper_content);
	    
	    
	    
	    
	    //设置默认的字体大小
	    bodyHtml.getSettings().setDefaultFontSize(40);
	    //是内容与手机适配
	    bodyHtml.getSettings().setUseWideViewPort(true);
	    bodyHtml.getSettings().setLoadWithOverviewMode(true);
	    
	    //能够的调用JavaScript代码
	    bodyHtml.getSettings().setJavaScriptEnabled(true);
	    bodyHtml.getSettings().setDefaultTextEncodingName("utf-8");
	    //加载HTML字符串进行显示
	    bodyHtml.loadDataWithBaseURL(null, news, "text/html", "utf-8", null);   总算把这个星期碰到的问题和解决办法写完了,虽然只是简单写下,而且还是学了两个星期的安卓,就开始做项目,但是真的学到了很多知识,尤其运用到了web的知识,我也相信webApp才是未来的主潮!!!版权声明:本文为博主原创文章,未经博主允许不得转载。
原文:http://blog.csdn.net/u012157999/article/details/47666967