首页 > 代码库 > 制作网页的Android客户端(二)
制作网页的Android客户端(二)
3.显示内容
得到了需要的属性,接下来就是展示了
MainActivity使用一个ListView显示NewsList集合的内容
NewsContentActivity通过Intent从MainActivity传递link,使用一个WebView显示新闻的详细内容。
需要注意的是webview加载URL使用的是loadDataWithBaseURL()这个方法,第一个属性是baseUrl,用来使相对地址的link属性变成绝对地址。
这个Html文件头
String head="<head><style>img{max-width:100%;width:auto;height:auto;}</style><style>iframe{max-width:100%;width:auto;height:auto;}</style></head>";
可以让图片和视频播放器适应手机的大小
package com.saltwater.animenews; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.annotation.StringRes; import android.support.design.widget.FloatingActionButton; import android.support.design.widget.Snackbar; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.View; import android.webkit.WebView; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import java.io.IOException; public class NewsContentActivity extends AppCompatActivity { String baseUrl="http://www.animenewsnetwork.com/"; //String testurl="news/2016-10-30/angel-beats-heaven-door-manga-ends-new-manga-of-true-arc-starts-in-2017/.108274"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_news_content); final Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { WebView wvContent= (WebView) findViewById(R.id.wvContent); wvContent.getSettings().setJavaScriptEnabled(true); wvContent.loadDataWithBaseURL(baseUrl,msg.obj.toString(),"text/html","utf-8",null); } }; /*获取新闻内容*/ new Thread(new Runnable() { @Override public void run() { try { Intent intent=getIntent(); String link=intent.getStringExtra("link"); Document doc = Jsoup.connect(baseUrl+link).get(); String head="<head><style>img{max-width:100%;width:auto;height:auto;}</style><style>iframe{max-width:100%;width:auto;height:auto;}</style></head>"; String bodyHTML=doc.select("div[class=meat]>*").toString(); String HTML="<html>"+head+"<body>"+bodyHTML+"</body></html>"; Message message=new Message(); message.obj=HTML; handler.sendMessage(message); } catch (Exception e){ e.printStackTrace(); } } }).start(); } }
listview的item布局
news_list_item.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:id="@+id/tvTitle" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="title" android:textSize="22dp" android:textStyle="bold" android:textColor="@color/colorPrimaryDark" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:maxLines="3" android:ellipsize="end"/> <TextView android:id="@+id/tvPubData" android:layout_width="wrap_content" android:layout_height="22dp" android:layout_below="@id/tvTitle" android:layout_alignParentLeft="true" android:text="time"/> <TextView android:id="@+id/tvCategory" android:layout_width="wrap_content" android:layout_height="22dp" android:layout_below="@id/tvTitle" android:layout_alignParentRight="true" android:text="Category"/> <LinearLayout android:layout_width="match_parent" android:layout_height="120dp" android:layout_below="@id/tvPubData" android:weightSum="1"> <TextView android:id="@+id/tvDescription" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="0.5" android:textSize="18dp" android:textColor="@color/colorBlack" android:maxLines="5" android:ellipsize="end" android:text="Description"/> <ImageView android:id="@+id/imgViewCover" android:layout_width="0dp" android:layout_height="120dp" android:layout_weight="0.5" android:src="@mipmap/ic_launcher"/> </LinearLayout> </RelativeLayout>
5.封面显示(todo)
制作网页的Android客户端(二)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。