我需要的理财知识书做一个android新闻客户端需要哪些知识

Android新闻客户端开发
&&&&& 新闻客户端相信大家都用过,很多开发者对于新闻客户端的主界面很感兴趣,想自己开发一个。
&&&& 主要是使用了SlidingMenu这样一个自定义控件,实现左边和右边都能滑动出菜单界面,而主界面是使用的viewFlipper控件。滑动的菜单和主界面都为fragment
1、SlidingMenu控件代码:
public class SlidingMenu extends RelativeLayout {
private View mSlidingV
// private View mMenuV// 左边菜单view
private View mDetailV// 右边消息view
private RelativeLayout bgS
private int screenW
private int screenH
private Context mC
private Scroller mS
private VelocityTracker mVelocityT
private int mTouchS
private float mLastMotionX;
private float mLastMotionY;
private static final int VELOCITY = 50;
private boolean mIsBeingDragged =
private boolean tCanSlideLeft =
private boolean tCanSlideRight =
private boolean hasClickLeft =
private boolean hasClickRight =
public SlidingMenu(Context context) {
super(context);
init(context);
private void init(Context context) {
mContext =
bgShade = new RelativeLayout(context);
mScroller = new Scroller(getContext());
mTouchSlop = ViewConfiguration.get(getContext()).getScaledTouchSlop();
WindowManager windowManager = ((Activity) context).getWindow().getWindowManager();
Display display = windowManager.getDefaultDisplay();
screenWidth = display.getWidth();
screenHeight = display.getHeight();
LayoutParams bgParams = new LayoutParams(screenWidth, screenHeight);
bgParams.addRule(RelativeLayout.CENTER_IN_PARENT);
bgShade.setLayoutParams(bgParams);
public SlidingMenu(Context context, AttributeSet attrs) {
super(context, attrs);
init(context);
public SlidingMenu(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init(context);
// 暂时无用
public void addViews(View left, View center, View right) {
// setLeftView(left);
setRightView(right);
setCenterView(center);
// 设置左边view
// public void setLeftView(View view) {
// LayoutParams behindParams = new LayoutParams(LayoutParams.WRAP_CONTENT,
// LayoutParams.MATCH_PARENT);
// addView(view, behindParams);
// mMenuView =
// public View getLeftView() {
// return mMenuV
public View getRightView() {
return mDetailV
// 设置右边view
public void setRightView(View view) {
LayoutParams behindParams = new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.MATCH_PARENT);
behindParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
addView(view, behindParams);
mDetailView =
// 设置中间view
public void setCenterView(View view) {
LayoutParams aboveParams = new LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT);
LayoutParams bgParams = new LayoutParams(screenWidth, screenHeight);
bgParams.addRule(RelativeLayout.CENTER_IN_PARENT);
View bgShadeContent = new View(mContext);
bgShadeContent.setBackgroundResource(R.drawable.shade_bg);
bgShade.addView(bgShadeContent, bgParams);
addView(bgShade, bgParams);
addView(view, aboveParams);
mSlidingView =
mSlidingView.bringToFront();
public void scrollTo(int x, int y) {
super.scrollTo(x, y);
postInvalidate();
public void computeScroll() {
if (!mScroller.isFinished()) {
if (puteScrollOffset()) {
int oldX = mSlidingView.getScrollX();
int oldY = mSlidingView.getScrollY();
int x = mScroller.getCurrX();
int y = mScroller.getCurrY();
if (oldX != x || oldY != y) {
if (mSlidingView != null) {
mSlidingView.scrollTo(x, y);
if (x & 0)
bgShade.scrollTo(x + 10, y);// 背景阴影右偏
bgShade.scrollTo(x - 10, y);// 背景阴影左偏
invalidate();
private boolean canSlideLeft =// 是否能向左滑动
private boolean canSlideRight =// 是否能向右滑动
public void setCanSliding(boolean left, boolean right) {
canSlideLeft =
canSlideRight =
/* 拦截touch事件 */
public boolean onInterceptTouchEvent(MotionEvent ev) {
final int action = ev.getAction();
final float x = ev.getX();
final float y = ev.getY();
switch (action) {
case MotionEvent.ACTION_DOWN:
// showToast(&MotionEvent.ACTION_DOWN....&);
mLastMotionX =
mLastMotionY =
mIsBeingDragged =
if (canSlideLeft) {
// mMenuView.setVisibility(View.VISIBLE);
mDetailView.setVisibility(View.INVISIBLE);
if (canSlideRight) {
// mMenuView.setVisibility(View.INVISIBLE);
mDetailView.setVisibility(View.VISIBLE);
case MotionEvent.ACTION_MOVE:
// showToast(&MotionEvent.ACTION_MOVE....&);
final float dx = x - mLastMotionX;
final float xDiff = Math.abs(dx);
final float yDiff = Math.abs(y - mLastMotionY);
if (xDiff & mTouchSlop && xDiff & yDiff) {
if (canSlideLeft) {
float oldScrollX = mSlidingView.getScrollX();
if (oldScrollX & 0) {
mIsBeingDragged =
mLastMotionX =
if (dx & 0) {
mIsBeingDragged =
mLastMotionX =
} else if (canSlideRight) {
float oldScrollX = mSlidingView.getScrollX();
if (oldScrollX & 0) {
mIsBeingDragged =
mLastMotionX =
if (dx & 0) {
mIsBeingDragged =
mLastMotionX =
return mIsBeingD
/* 处理拦截后的touch事件 */
@SuppressLint(&Recycle&)
public boolean onTouchEvent(MotionEvent ev) {
if (mVelocityTracker == null) {
mVelocityTracker = VelocityTracker.obtain();
mVelocityTracker.addMovement(ev);
final int action = ev.getAction();
final float x = ev.getX();
final float y = ev.getY();
switch (action) {
case MotionEvent.ACTION_DOWN:
if (!mScroller.isFinished()) {
mScroller.abortAnimation();
mLastMotionX =
mLastMotionY =
if (mSlidingView.getScrollX() == -getMenuViewWidth()
&& mLastMotionX & getMenuViewWidth()) {
if (mSlidingView.getScrollX() == getDetailViewWidth()
&& mLastMotionX & getMenuViewWidth()) {
case MotionEvent.ACTION_MOVE:
if (mIsBeingDragged) {
final float deltaX = mLastMotionX -
mLastMotionX =
float oldScrollX = mSlidingView.getScrollX();
float scrollX = oldScrollX + deltaX;
if (canSlideLeft) {
if (scrollX & 0)
scrollX = 0;
if (canSlideRight) {
if (scrollX & 0)
scrollX = 0;
if (deltaX & 0 && oldScrollX & 0) { // left view
final float leftBound = 0;
final float rightBound = -getMenuViewWidth();
if (scrollX & leftBound) {
scrollX = leftB
} else if (scrollX & rightBound) {
scrollX = rightB
} else if (deltaX & 0 && oldScrollX & 0) { // right view
final float rightBound = getDetailViewWidth();
final float leftBound = 0;
if (scrollX & leftBound) {
scrollX = leftB
} else if (scrollX & rightBound) {
scrollX = rightB
if (mSlidingView != null) {
mSlidingView.scrollTo((int) scrollX, mSlidingView.getScrollY());
if (scrollX & 0) {// Left View
bgShade.scrollTo((int) scrollX + 10, mSlidingView.getScrollY());
} else {// Right View
bgShade.scrollTo((int) scrollX - 10, mSlidingView.getScrollY());
case MotionEvent.ACTION_CANCEL:
case MotionEvent.ACTION_UP:
if (mIsBeingDragged) {
final VelocityTracker velocityTracker = mVelocityT
puteCurrentVelocity(100);
float xVelocity = velocityTracker.getXVelocity();// 滑动的速度
int oldScrollX = mSlidingView.getScrollX();
int dx = 0;
if (oldScrollX &= 0 && canSlideLeft) {// left view
if (xVelocity & VELOCITY) {
dx = -getMenuViewWidth() - oldScrollX;
} else if (xVelocity & -VELOCITY) {
dx = -oldScrollX;
if (hasClickLeft) {
hasClickLeft =
setCanSliding(tCanSlideLeft, tCanSlideRight);
} else if (oldScrollX & -getMenuViewWidth() / 2) {
dx = -getMenuViewWidth() - oldScrollX;
} else if (oldScrollX &= -getMenuViewWidth() / 2) {
dx = -oldScrollX;
if (hasClickLeft) {
hasClickLeft =
setCanSliding(tCanSlideLeft, tCanSlideRight);
if (oldScrollX &= 0 && canSlideRight) {
if (xVelocity & -VELOCITY) {
dx = getDetailViewWidth() - oldScrollX;
} else if (xVelocity & VELOCITY) {
dx = -oldScrollX;
if (hasClickRight) {
hasClickRight =
setCanSliding(tCanSlideLeft, tCanSlideRight);
} else if (oldScrollX & getDetailViewWidth() / 2) {
dx = getDetailViewWidth() - oldScrollX;
} else if (oldScrollX &= getDetailViewWidth() / 2) {
dx = -oldScrollX;
if (hasClickRight) {
hasClickRight =
setCanSliding(tCanSlideLeft, tCanSlideRight);
smoothScrollTo(dx);
public int getMenuViewWidth() {
// if (mMenuView == null) {
// return mMenuView.getWidth();
public int getDetailViewWidth() {
if (mDetailView == null) {
return mDetailView.getWidth();
void smoothScrollTo(int dx) {
int duration = 500;
int oldScrollX = mSlidingView.getScrollX();
mScroller.startScroll(oldScrollX, mSlidingView.getScrollY(), dx, mSlidingView.getScrollY(),
duration);
if (oldScrollX & 0) {// Left
if (dx &= 0) {// Left 显示
showLeft =
showLeft =
} else {// Right
if (dx &= 0) {// Right 显示
showRight =
showRight =
invalidate();
public boolean showLeft =
* 显示左侧边的view
// public void showLeftView() {
// // int menuWidth = mMenuView.getWidth();
// int oldScrollX = mSlidingView.getScrollX();
// if (oldScrollX == 0) {
// mMenuView.setVisibility(View.VISIBLE);
// mDetailView.setVisibility(View.INVISIBLE);
// smoothScrollTo(-menuWidth);
// tCanSlideLeft = canSlideL
// tCanSlideRight = canSlideR
// hasClickLeft =
// setCanSliding(true, false);
// showLeft =
// } else if (oldScrollX == -menuWidth) {
// smoothScrollTo(menuWidth);
// showLeft =
// if (hasClickLeft) {
// hasClickLeft =
// setCanSliding(tCanSlideLeft, tCanSlideRight);
public boolean showRight =
/* 显示右侧边的view */
public void showRightView() {
int menuWidth = mDetailView.getWidth();
int oldScrollX = mSlidingView.getScrollX();
if (oldScrollX == 0) {
// mMenuView.setVisibility(View.INVISIBLE);
mDetailView.setVisibility(View.VISIBLE);
smoothScrollTo(menuWidth);
tCanSlideLeft = canSlideL
tCanSlideRight = canSlideR
hasClickRight =
showRight =
showLeft =
setCanSliding(false, true);
} else if (oldScrollX == menuWidth) {
smoothScrollTo(-menuWidth);
showRight =
if (hasClickRight) {
hasClickRight =
setCanSliding(tCanSlideLeft, tCanSlideRight);
public boolean getLeftVisbility() {
return showL
public boolean getRightVisbility() {
return showR
说明:因为我这个客户端只能右边显示出菜单,所以对代码进行了修改,如上注释部分的代码。&
2、布局文件
2.1 mainActivity布局
&SlidingMenu xmlns:android=&/apk/res/android&
android:id=&@+id/slidingMenu&
android:layout_width=&match_parent&
android:layout_height=&match_parent& /&
&2.2 右边菜单和主界面布局是一样的
&?xml version=&1.0& encoding=&utf-8&?&
&FrameLayout xmlns:android=&/apk/res/android&
android:id=&@+id/right_frame&
android:layout_width=&fill_parent&
android:layout_height=&fill_parent& /&
2.3 mainFragment布局
&LinearLayout
xmlns:android=&/apk/res/android&
xmlns:tools=&/tools&
android:id=&@+id/container&
android:layout_width=&match_parent&
android:layout_height=&match_parent&
android:orientation=&vertical&
&include layout=&@layout/title&/&
&LinearLayout
android:id=&@+id/linearLayout1&
android:layout_width=&match_parent&
android:layout_height=&wrap_content&
android:paddingBottom=&5dip&
android:paddingTop=&10dip&
android:background=&@color/lightgrey&
android:orientation=&horizontal&
android:id=&@+id/tab_history&
android:layout_width=&match_parent&
android:layout_height=&match_parent&
android:layout_weight=&1.0&
android:gravity=&center&
android:text=&@string/tab1&
android:textColor=&@color/white&
android:textSize=&15sp&/&
android:id=&@+id/tab_knowlodge&
android:layout_width=&match_parent&
android:layout_height=&match_parent&
android:layout_weight=&1.0&
android:gravity=&center&
android:text=&@string/tab2&
android:textColor=&@color/blue&
android:textSize=&15sp&/&
android:id=&@+id/tab_joker&
android:layout_width=&match_parent&
android:layout_height=&match_parent&
android:layout_weight=&1.0&
android:gravity=&center&
android:text=&@string/tab3&
android:textColor=&@color/blue&
android:textSize=&15sp&/&
android:id=&@+id/tab_star&
android:layout_width=&match_parent&
android:layout_height=&match_parent&
android:layout_weight=&1.0&
android:gravity=&center&
android:text=&@string/tab_4&
android:textColor=&@color/blue&
android:textSize=&15sp&/& --&
&/LinearLayout&
&!-- &LinearLayout
android:layout_width=&match_parent&
android:layout_height=&wrap_content&
android:layout_gravity=&bottom&
android:orientation=&vertical&
android:paddingBottom=&3dip&& --&
&ImageView
android:id=&@+id/iv_bottom_line&
android:layout_width=&40dip&
android:layout_height=&2dip&
android:layout_marginLeft=&40dip&
android:scaleType=&matrix&
android:contentDescription=&@null&
android:src=&#fff&&
&/ImageView&
&!-- &/LinearLayout& --&
&android.support.v4.view.ViewPager
android:id=&@+id/viewPager&
android:layout_width=&match_parent&
android:layout_height=&wrap_content&
android:background=&@color/white&
&/LinearLayout&
3、mainFragment源码
public class MainFragment extends Fragment implements ViewPager.OnPageChangeListener,
OnClickListener {
private ViewPager viewP
private List&Fragment&
private TextView historyText, jokerText, knowledgeT
private ImageView lineI
private ImageButton mUserBtn, mCommentB
private int currIndex = 0;
private float position_one, position_
private OnShowLeftListener mL
public interface OnShowLeftListener {
public void showLeftFragment();
public static MainFragment instance() {
return new MainFragment();
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_main, container, false);
init(view);
private void init(View view) {
viewPager = (ViewPager) view.findViewById(R.id.viewPager);
fragments = new ArrayList&Fragment&();
fragments.add(NewsFragment.instance());// 添加客户端主界面所有的fragment
fragments.add(InfoFragment.instance());
fragments.add(StategyFragment.instance());
ViewAdapter adapter = new ViewAdapter(getFragmentManager(), fragments);
viewPager.setAdapter(adapter);
viewPager.setCurrentItem(0);
viewPager.setOnPageChangeListener(this);
historyText = (TextView) view.findViewById(R.id.tab_history);
jokerText = (TextView) view.findViewById(R.id.tab_joker);
knowledgeText = (TextView) view.findViewById(R.id.tab_knowlodge);
historyText.setOnClickListener(this);
jokerText.setOnClickListener(this);
knowledgeText.setOnClickListener(this);
lineImage = (ImageView) view.findViewById(R.id.iv_bottom_line);
// int bottomLineWidth = lineImage.getLayoutParams().
DisplayMetrics dm = new DisplayMetrics();
getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm);
int screenW = dm.widthP
position_one = (float) screenW / (fragments.size());
position_two = position_one * 2;
// position_three = position_one * 3;
mUserBtn = (ImageButton) view.findViewById(R.id.button_user);
mUserBtn.setOnClickListener(this);
mCommentBtn = (ImageButton) view.findViewById(R.id.button_comment);
mCommentBtn.setOnClickListener(this);
mCommentBtn.setVisibility(View.GONE);
public void onDestroy() {
super.onDestroy();
public void onStart() {
super.onStart();
public void onClick(View v) {
switch (v.getId()) {
case R.id.tab_history:
viewPager.setCurrentItem(0);
case R.id.tab_joker:
viewPager.setCurrentItem(2);
// case R.id.tab_star:
// if (checkUser())
// viewPager.setCurrentItem(3);
case R.id.tab_knowlodge:
viewPager.setCurrentItem(1);
case R.id.button_user:
mListener.showLeftFragment();
case R.id.button_comment:
// appwall.doShowAppWall();
viewPager.setCurrentItem(0);
public void onPageScrollStateChanged(int arg0) {
public void onPageScrolled(int arg0, float arg1, int arg2) {
public void onPageSelected(int arg0) {
Animation animation =
switch (arg0) {
if (currIndex == 1) {
animation = new TranslateAnimation(position_one, 0, 0, 0);
knowledgeText.setTextColor(getResources().getColor(R.color.blue));
} else if (currIndex == 2) {
animation = new TranslateAnimation(position_two, 0, 0, 0);
jokerText.setTextColor(getResources().getColor(R.color.blue));
// else if (currIndex == 3) {
// animation = new TranslateAnimation(position_three, 0, 0, 0);
// starText.setTextColor(getResources().getColor(R.color.blue));
historyText.setTextColor(getResources().getColor(R.color.white));
if (currIndex == 0) {
animation = new TranslateAnimation(0, position_one, 0, 0);
historyText.setTextColor(getResources().getColor(R.color.blue));
} else if (currIndex == 2) {
animation = new TranslateAnimation(position_two, position_one, 0, 0);
jokerText.setTextColor(getResources().getColor(R.color.blue));
// else if (currIndex == 3) {
// animation = new TranslateAnimation(position_three, position_one, 0, 0);
// starText.setTextColor(getResources().getColor(R.color.blue));
knowledgeText.setTextColor(getResources().getColor(R.color.white));
if (currIndex == 0) {
animation = new TranslateAnimation(0, position_two, 0, 0);
historyText.setTextColor(getResources().getColor(R.color.blue));
} else if (currIndex == 1) {
animation = new TranslateAnimation(position_one, position_two, 0, 0);
knowledgeText.setTextColor(getResources().getColor(R.color.blue));
// else if (currIndex == 3) {
// animation = new TranslateAnimation(position_three, position_two, 0, 0);
// starText.setTextColor(getResources().getColor(R.color.blue));
jokerText.setTextColor(getResources().getColor(R.color.white));
// case 3:
// if (checkUser()) {
// if (currIndex == 0) {
// animation = new TranslateAnimation(0, position_three, 0, 0);
// historyText.setTextColor(getResources().getColor(R.color.blue));
// } else if (currIndex == 1) {
// animation = new TranslateAnimation(position_one, position_three, 0, 0);
// knowledgeText.setTextColor(getResources().getColor(R.color.blue));
// } else if (currIndex == 2) {
// animation = new TranslateAnimation(position_two, position_three, 0, 0);
// jokerText.setTextColor(getResources().getColor(R.color.blue));
// starText.setTextColor(getResources().getColor(R.color.white));
if (animation != null) {
currIndex = arg0;
animation.setFillAfter(true);
animation.setDuration(300);
lineImage.startAnimation(animation);
public void onAttach(Activity activity) {
super.onAttach(activity);
mListener = (OnShowLeftListener)
4、mainActivity源码
public class MainActivity extends FragmentActivity implements MainFragment.OnShowLeftListener {
private SlidingMenu mSlidingM
private MainFragment mMainF
private UserFragment mUserF
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mSlidingMenu = (SlidingMenu) findViewById(R.id.slidingMenu);
mSlidingMenu.setRightView(getLayoutInflater().inflate(R.layout.right_frame, null));
mSlidingMenu.setCenterView(getLayoutInflater().inflate(R.layout.center_frame, null));
FragmentTransaction t = this.getSupportFragmentManager().beginTransaction();
mMainFrag = MainFragment.instance();
t.replace(R.id.center_frame, mMainFrag);
mUserFrag = UserFragment.instance();
t.replace(R.id.right_frame, mUserFrag);
t.commit();
mSlidingMenu.setCanSliding(false, true);
protected void onPause() {
super.onPause();
protected void onResume() {
super.onResume();
public void showLeftFragment() {
mSlidingMenu.showRightView();
以上基本上就是一个客户端的主界面开发,欢迎大家去下载我自己开发的一个新闻客户端,谢谢大家!
/Soft/Android/com.yln.game-3-1.1.html
1 楼 高军威 2 小时前&&
是不是应该配张效果图&
Android 新闻客户端学习笔记
学习了新闻客户端开发后,有很多是通用的,就把客户端用到的一些做个笔记,已备以后使用,主要用到的知识点有:
1. Android网络编程 2. Android中BaseAdapter的使用 3. Android中Webview的使用
网络编程工具类: public class HttpUtils {
基于Android的小巫新闻客户端开发---显示新闻详细内容业务逻辑实现
基于Android的小巫新闻客户端开发---显示新闻详细内容业务逻辑实现
日,继续小巫新闻客户端的开发。 上一篇忘记谈及一个比较重要的内容,有些网友留言给小巫问:Json数据的明细是怎样的?,在这里小巫先声明一点,小巫对Json数据的格式也是刚接触,这是稍微知道其的结构组成,关
基于Android的小巫新闻客户端开发--UI设计(主界面)
基于Android的小巫新闻客户端开发--UI设计(主界面) 日
由于太多事情要乱,不可能只专注一样东西,因为怕完成不了任务。原本这系列博客就是要在寒假搞定的,没想到拖了那么久,没办法。现在只能有空的时候就回顾一下小巫新闻客户端,在复习一下这样子了。大概会在10篇以内把整个客户端开发给写完,不可能面面俱到的了,只是
Android源码下载之《Android新闻客户端源码》
介绍 Android新闻客户端源码,功能上分为:新闻、关注、读报、微博。里面比较有特色的就是读报功能,真正安装报纸的排版进行读报,给人得感觉就像是在读真实的报纸。其实即使首页的动态云标签非常有特色,可以随机显示出最新新闻热词,用手滑动还能动态切换。此Demo即可作为学习使用也可作为商业使用,本站保留原创权利! 测试环境 [Code4Apk
Android 开发 shareSDK 分享的时候 如何设置 登录和分享走客户端?
分享的时候 走 客户端: shareSDK 中
weibo.SSOSetting(false)这样就是客户端 如果没有客户端会调转到网页版
登录的时候走 客户端: 代码中:
weibo.SSOSetting(false)这样就是客户端 如果没有客户端会调转到网页版
android客户端设置界面开发实例
我们在开发软件的时候,都会填一个功能就是设置,查看很多软件大多数都是圆角形式,最近在帮一个客户做直播客户端也要添加一个设置界面,因此分享一下制作过程先看一下效果图(上面还包含一个头,但是里面含有客户信息,就给去掉了)
效果图就如上面的,其实也就是LinearLayout加上圆角,每一行用RelativeLayout布局,由于还要点击的时候改变背景颜色,
网易新闻应用源码完整版客户端+服务端源码
网易新闻应用源码完整版客户端+服务端源码,仿网易新闻,android端+服务器端1,为了加快访问速度,服务器端数据是写死了的,数据太多的就复制粘贴了,不是数据库查询的2,新闻图片下载代码注释掉了(网速给力的可以放开注释),显示的是默认图片3.运行时记得改android端Constantvalues类里面的IP地址4,U
基于xmpp openfire smack开发之Android客户端开发[3]
在上两篇文章中,我们依次介绍openfire部署以及smack常用API的使用,这一节中我们着力介绍如何基于asmack开发一个Android的客户端,本篇的重点在实践,讲解和原理环节,大家可以参考前两篇的文章 基于xmpp openfire smack开发之openfire介绍和部署[1] 基于xmpp openf
使用Titanium Mobile开发iPhone/Android应用(02)- 使用Titanium开发Twitter客户端
上回文中我们构筑好了环境,把做成了基本的Project,从这篇开始我们将试图开发一个实际的应用。分为多篇我们做一个Twitter的客户端,网络相关,图片的使用等,来体验一下Titanium的便利之处吧。
做成一个什么样的应用
首先,先确定一下要做的应用的大体结构。
Android客户端抓包笔记
通常就两种,一种是HTTP,另外一种就是跑到android系统里面去抓包了
相关环境: Android开发环境 Fiddler2:有绿色版本下载 Tcpdump: android系统自带的
第一个:抓取HTTP协议包 android-sdk 目录下运行AVD Manager.exe 创建模拟器:android4.0 01
基于Android的小巫新闻客户端开发--主界面业务逻辑实现
基于Android的小巫新闻客户端开发--主界面业务逻辑实现 上一篇介绍了主界面的UI设计,现在直接进入主题,业务逻辑的实现,由于项目的开发总是在不断的完善的,最初实现的效果,总会随项目的进度而做出相应的改变,小巫也不可能从新开发整个客户端,然后再一步一步记录,那没有必要,学习东西,只需要知道关键点在哪里就行了,关于细节方
基于Android小巫新闻客户端开发---显示新闻详细内容UI设计
基于Android小巫新闻客户端开发---显示新闻详细内容UI设计
日,天气潮湿!!!
距上一次写的主界面业务逻辑实现,已经过来11天,小巫觉得拖得太久了,所以决定尽量把所有的内容介绍完,好完成这个任务,因为小巫已经开学了,将会有更加重的任务等着。在发表前面几
网络通信与数据传输(SSH开发的Web端+Android客户端) 比如我在WEB端得到了很多Sring对象和一个List对象,要怎么把他们一口气传到安卓客户端啊。用什么方法?之前是HttpClient返回Json,可是我以为Json一下只能返回一种。网上有人说用Hessian,可是Hessian的安卓端要怎么配置.xml文件啊。求大神给指条路就好了~~~
使用Titanium Mobile开发iPhone/Android应用(03)- Twitter客户端之页面调整
美化Twitter客户端
上回中,我们坐了一个把自己的Tweeter表示出来的页面,这只仅仅是把Tweet的正文并排放在页面上而已,这回我们要把从Twitter取的情报中的Tweeter时间,用户名,用户头像信息也表示出来。这篇中我们要说或如何将页面美化。
那么我们就尽早进入修改
Android基于XMPP Smack Openfire开发IM【四】初步实现两个客户端通信
本博客要介绍的内容: Openfire做服务器端,两个客户端:Spark、android模拟器。实现两个客户端之间的通信。
第一步:启动openfire服务器。(这里需要用到两个用户登录,前面的博客中已经说明如何添加用户了。) [img]
第二步:启动Spark客户端,如果您还
Android开发WordPress的客户端, 登录时Cookie(httpOnly)的问题
曾经用Android开发过学校教务系统的登录功能(jsp/tomcat),能够成功模拟出Http请求. 但是WordPress的登录功能实现起来要绕一个弯子. 不能直接用HttpClient来得到cookie.
这位兄弟遇到的问题跟我是一样的/xti
要为一个门户网站开发一个Android客户端 类似于网易新闻这样的,是怎么个思路?
是客户端发送请求然后解析返回的html格式的代码,显示在客户端;还是应该客户端发送请求,服务端再写个程序接收请求从数据库中返回数据显示在客户端?
使用Titanium Mobile开发iPhone/Android应用(05)- Twitter客户端之页面迁移
前一回文中,我们编写了往Twitter发信的部分。发信成功后,window还不能够迁移,所以这回我们着重说说页面迁移。
页面的迁移
关闭window
往Twitter发信之后,我们试着关闭写消息的window 追加一下代码:
postButton.addEventLi
快速构建Android REST客户端
http://imid.me/blog//building-android-rest-client-applications-efficiently-number-1/ //android-rest-client%E6%9E%B6%E6%9E%84%E
使用Titanium Mobile开发iPhone/Android应用(06)- Twitter客户端之GPS和Map
做个像样的智能应用
直到上一篇,我们说了开发应用当中必须的Titanium的基本功能。从这篇开始我们说说智能手机特有的GPS,照相机等功能。能够很方便使用GPS,照相机,加速度感应器等功能,并且不管是iPhone还是Android都是用同样的代码来实现也是Titanium的一
使用Titanium Mobile开发iPhone/Android应用(07)- Twitter客户端之照相机
使用照相机
在前一篇我们说了一下iPhone中的几个功能,GPS和地图的表示,这篇我们将说说照相机的使用。能够从已经照好的照片中选择照片,而且选择的方式通过Option Dialog罗列,然后将照片发布到TwitPic。
ImageView的准备
要能够预览选择的照片,我们需要
android客户端和webservive交互的方式 android客户端和webservive交互的方式,最好有代码案例!
------解决思路---------------------- /yingying0708/archive//2414210.html
聊天程序 android和swing客户端
聊天程序,swing做服务器,客户端为android和swing,可以进行相互之间的通讯,实现的功能如下图:
基本思路: 启动服务器:
启动服务器线程,等待客户端的连接,启动广播线程,负责向客户端发送消息
教你如何用最新的技术快速开发一个完整的Android客户端
在开源社区混了很久,也贡献了几个小的demo,但一直没有一个完整的项目出来。这次开源了一个完整的Android项目,教你如何用最新的技术,最流行的开源库做出一个很棒的Android客户端。github地址:/stormzhang/9GAG开发工具Android Studio(0.5.4) + Gra
Android新闻客户端(仿网易)--下
一、摘要继上一篇博客《模仿网易新闻客户端(上)》之后,笔者继续开发我们自己的“网易新闻客户端”,由于找不到现成的url新闻链接地址,所以这里就用RSS订阅所提供的url,这里所用到的链接仍然是网易新闻中心的RSS地址/rss/,然后通过解析xml内容,以ListView的方式呈现在手机界面上。还有一个问题,因为RSS所
针对 .NET 客户端开发,Microsoft 正在开发一些革命性的工具和一个易于实现的应用程序框架(代号&Acropolis&),以便开发人员能够更快速地创建、管理和部署 Microsoft Windows 客户端应用程序。
Microsoft Code Name &Acropolis& Community Technology Preview 1 M
求教一个思路,我android开发,写了一个socket客户端跟服务端通信,服务端会发送事件,我要通过事件修改activity上的标签状态 如题,我android开发,写了一个socket客户端跟服务端通信,服务端会发送事件给我这边的客户端,我要通过事件修改activity上的标签状态,重点就是想问我socket客户端接收到了信息怎么发送到activity,从而能够让activity做出相应的改变
实现支持Android客户端与服务器端通过DES加密认证
接下来让我解说一下如何实现支持Android客户端与服务器端通过DES加密认证
由于Android应用没有像web开发中的session机制,所以采用PHPSESSID的方式,是没有办法获取客户端登录状态的。
这种情况下,如何在用户登录后,服务器端获取用户登录状态并保持,就必须采用一种“握手”的方式。
每个手机都有自
使用Titanium Mobile开发iPhone/Android应用(04)- Twitter客户端之使用OAuth调用API
这回我们将说明使用OAuth调用API。Twitter API基本上都使用的是OAuth作为认证,所以要做Twitter客户端,OAuth是不可缺少的一个技术点。
制作发消息页面
在实际开始使用OAuth认证之前我们想做一个发消息的页面。在第一回页面的基础上,我
Android 网页抓取(实现新闻客户端)
在做Android新闻客户端时,需要从sina网抓取新闻内容。 Android客户端抓取并解析网页的方法我用到的有两种: 一、用jsoup 没仔细研究,网上有类似的,可以参考这两位兄弟的: /blog/1333127 http://blog.csdn.net/hellohaifei/article/d
Android异步HTTP客户端的特点
MakeasynchronousHTTP requests, handle responses inanonymous callbacks HTTP requests happenoutside the UI thread Requests use athreadpool&
CSDN Android客户端的制作 导航帖
弄个导航贴,把相关知识来个汇总。 CSDN Android的客户端的效果图:
分别通过以下博客进行详细的讲解: 1、Android 使用Fragment,ViewPagerIndicator 制作csdn app主要框架 主要使用ViewPageIndicator ,FragmentPagerAdapter
Android's HTTP Clients -Android的http客户端连接方式
【前言】开发android的手机客户端,通常都要通过模拟http请求与服务器端通信,android给我们提供了两种方式的http client客户端接口,一种是采用Apache HTTP Client,一种是采用HttpURLConnect,那么到底选择哪种方式好呢?来自google android &nbs
android客户端利用sokcet通信和向Java服务端发请求,Java服务端把文件发给android客户端
Java服务端
package com.yqq.socketT import java.io.ByteArrayOutputS import java.io.F import java.io.FileInputS import java.io.
要开发一个android项目,以android为客户端,pc为服务器端,如果实现通讯交互?
请大神们介绍几个方法可以吗?还有androidsocket可以用来交互吗,对于这个知识点我也是模模糊糊…
------解决思路---------------------- HTTP用于基本常用的,SOCKET用于实时聊天的多谢,或者是对性能要求高的APP
android 服务端如何获取客户端传递来的数据(在线 100分) 客户端代码
Stringurl=&http://192.168.1.160:8080/MDXT/padlogin.action&;
HttpPostrequest&nb
Android 服务器向客户端推送方案
1.C2DM(现在是GCM)
Android Cloud to Device Messaging (C2DM) 作为 Android 2.2 的一部分已经发布了。C2DM 允许第三方开发者开发相关的应用来推送少量数据消息(1024bytes)到用户的手机上。C2DM 创造了一个良好的机会,允许我们使用多种 Google 开发工具来创建一种简单但相当实用
android 启动默认的邮件客户端,多附件的问题
目前开发的app中需要发送邮件,所以需要调用android默认的邮件客户端,并需要添加多个邮件附件,我该通过哪个组件调用默认的客户端?用什么组件来支持多个附件的电子邮件? 是通过下面的哪一个? ( Intent.ACTION_SEND, Intent.ACTION_SENDTO, I
答复: 【源码下载】精品源码集合—— 9.28更新仿开心网Android客户端
仿开心网Android客户端
支持平台:Android 运行环境:Eclipse 开发语言:Java
下载地址: /code/info/2
请问android客户端如何访问Mysql 我查阅了些资料:
经过webserver使用hibernate访问数据库中转返回JSON数据
客户端解析JSON数据并显示数据
可是不知道具体如何实现
求各位讲解下
或者有什么现成的项目文件参考下
------解决方案-------------------- 你说的意思就是通过搭建一个服务器,在服务器上访问mysql(这个有很多的方法)。}

我要回帖

更多关于 github android客户端 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信