java安卓怎么开发一个新闻app,一个基于Android系统的新闻客户端(一)

一个基于Android系统的新闻客户端(一)

一、整体概述

在服务器端,通过对凤凰网的抓取存入数据库,客户端通过向服务器发送请求得到新闻。

服务端用WCF,宿主为window服务,客户端为Java写的安卓程序。

二、客户端

我在eclipse里新建了个Android项目,命名为MyNewClient,eclipse自动生成二个xml布局文件,如图:

960ce127cefbd43d6c7840f0d74eb7c4.png

其中,fragment_main.xml是新版的布局文件,暂时不会用,把它删掉。

新建xml文件,命名为activity_foot.xml,在这里我们要做app的底部,先上代码:

2b65ef29a5872cc0e4771c25889edd04.gif

6a087676c59fa8b19d76e6bb55a32902.gif

>

/>

>

/>

>

/>

>

/>

>

/>

View Code

其中用到了几章图片,

aa2c25329f07aa99e94b18bf9d668f73.png,

62835d4da20c4739c1f7351f8a17b589.png,

8256c03b9f1f294dd9d312950700a225.png,

fc665309a61009f5a458856078e8b235.png,

adb26d23d9c5b344a3231567f536e7ee.png,

dd0ffafa46a431544da42a018a335588.png,

29cdc1275ab965167494bcf5b4cad6fb.png,

1f11e5302f85e16aa874e31228f0907c.png,

e4259808efa695dc9fe086f917097856.png,

0460263811082bf858d832eebad92c9e.png

其中有的属性中有用到xml,用来定义单击事件发生时的状态得变化,下面是其一个的代码,其他代码秩序修改其变化后的图片即可。

2b65ef29a5872cc0e4771c25889edd04.gif

6a087676c59fa8b19d76e6bb55a32902.gif

View Code

新建xml文件,命名为activity_main.xml,在这里我们要对app进行布局,它包含app的头,和底部,还有一个WebView,下面是代码:

2b65ef29a5872cc0e4771c25889edd04.gif

6a087676c59fa8b19d76e6bb55a32902.gif

View Code

其中include用于包含xml文件。

新建xml文件,命名为activity_top.xml,在这里我们要做app的头部,下面是代码:

2b65ef29a5872cc0e4771c25889edd04.gif

6a087676c59fa8b19d76e6bb55a32902.gif

<?xml version="1.0" encoding="utf-8"?>"

View Code

布局文件基本完毕.

下面是java代码:

2b65ef29a5872cc0e4771c25889edd04.gif

6a087676c59fa8b19d76e6bb55a32902.gif

packagecom.example.liguifa;importandroid.support.v7.app.ActionBarActivity;importandroid.support.v7.app.ActionBar;importandroid.support.v4.app.Fragment;importandroid.annotation.SuppressLint;importandroid.app.AlertDialog;importandroid.os.Bundle;importandroid.view.Display;importandroid.view.KeyEvent;importandroid.view.LayoutInflater;importandroid.view.Menu;importandroid.view.MenuItem;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.view.ViewGroup;importandroid.view.ViewGroup.LayoutParams;importandroid.view.ViewTreeObserver;importandroid.webkit.WebChromeClient;importandroid.webkit.WebSettings;importandroid.webkit.WebView;importandroid.webkit.WebViewClient;importandroid.widget.LinearLayout;importandroid.widget.Toast;importandroid.os.Build;

@SuppressLint("SetJavaScriptEnabled") public class MainActivity extends ActionBarActivity implementsOnClickListener {privateWebView wv;public inttopHeight;public intbottomHeight;private intW;private intH;publicLinearLayout lineTop;publicLinearLayout lineBottom;privateLinearLayout webView;

@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);this.window_Load();this.LoadWeb();

}public voidLoadWeb()

{

wv=(WebView)findViewById(R.id.webView1);

wv.getSettings().setJavaScriptEnabled(true);

wv.setScrollBarStyle(0);

WebSettings webSettings=wv.getSettings();

webSettings.setAllowFileAccess(true);

webSettings.setBuiltInZoomControls(true);

wv.loadUrl("http://xw.qq.com");//加载数据

wv.setWebChromeClient(newWebChromeClient() {

@Overridepublic void onProgressChanged(WebView view, intnewProgress)

{if (newProgress == 100)

{

MainActivity.this.setTitle("加载完成");

}else{

MainActivity.this.setTitle("加载中.......");

}

}

});

}private booleanwindow_Load()

{

Display mDisplay=getWindowManager().getDefaultDisplay();

W=mDisplay.getWidth();

H=mDisplay.getHeight();int foot_Ico=W/5;

LinearLayout[] l=newLinearLayout[]{

(LinearLayout)this.findViewById(R.id.home),

(LinearLayout)this.findViewById(R.id.edit),

(LinearLayout)this.findViewById(R.id.xj),

(LinearLayout)this.findViewById(R.id.shop),

(LinearLayout)this.findViewById(R.id.home_top),

(LinearLayout)this.findViewById(R.id.sh_top),

(LinearLayout)this.findViewById(R.id.zz_top),

(LinearLayout)this.findViewById(R.id.kj_top),

(LinearLayout)this.findViewById(R.id.js_top)

};for(LinearLayout line:l)

{

LayoutParams laParams=(LayoutParams)line.getLayoutParams();

laParams.width=foot_Ico;

line.setLayoutParams(laParams);

line.setOnClickListener(this);

}

webView=(LinearLayout)this.findViewById(R.id.web);

lineTop=((LinearLayout)this.findViewById(R.id.top));

lineBottom=((LinearLayout)this.findViewById(R.id.bottom));

ViewTreeObserver vto=lineTop.getViewTreeObserver();

vto.addOnPreDrawListener(newViewTreeObserver.OnPreDrawListener(){

@Overridepublic booleanonPreDraw() {//TODO 自动生成的方法存根

topHeight=lineTop.getHeight();

ViewTreeObserver vto1=lineBottom.getViewTreeObserver();

vto1.addOnPreDrawListener(newViewTreeObserver.OnPreDrawListener(){

@Overridepublic booleanonPreDraw() {//TODO 自动生成的方法存根

bottomHeight=lineBottom.getHeight();

LayoutParams laParams=(LayoutParams)webView.getLayoutParams();

laParams.height=H-topHeight-bottomHeight-24;

webView.setLayoutParams(laParams);return true;

}

});return true;

}

});return true;

}

@Overridepublic voidonClick(View arg0) {//TODO 自动生成的方法存根//new AlertDialog.Builder(this).setTitle("提示").setMessage("正在测试").show();//setContentView(R.layout.activity_edit);//this.window_Load();

}

}

View Code

其中,LoadWeb();用于自适应屏幕的大小,

Display mDisplay = getWindowManager().getDefaultDisplay();

W = mDisplay.getWidth();

H = mDisplay.getHeight();

可以得到屏幕的分辨率宽W,高H。

ViewTreeObserver类可以动态改变控件大小。

方法为

ViewTreeObserver vto = lineTop(控件句柄).getViewTreeObserver();

vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener(){

[email protected]

public boolean onPreDraw() {

topHeight(int型变量) = lineTop.getHeight();

return true;

});

WebView的使用方法为:

wv = (WebView)findViewById(R.id.webView1);

wv.getSettings().setJavaScriptEnabled(true);

wv.setScrollBarStyle(0);

WebSettings webSettings = wv.getSettings();

webSettings.setAllowFileAccess(true);

webSettings.setBuiltInZoomControls(true);

wv.loadUrl("http://xw.qq.com");

//加载数据

wv.setWebChromeClient(new WebChromeClient() {

@Override

public void onProgressChanged(WebView view, int newProgress)

{

if (newProgress == 100)

{

MainActivity.this.setTitle("加载完成");

}

else

{

MainActivity.this.setTitle("加载中.......");

}

}

});

}

/*********************************************这是一个学习笔记****************************************************************/

总结:由于Java不是强项,Android也刚学没几天,代码还有很多不算太懂的东西。

原文:http://www.cnblogs.com/liguifa/p/3800041.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值