应用宝的下载地址:http://android.myapp.com/myapp/detail.htm?apkName=com.jov.laughter

其它的市场如木蚂蚁,安卓市场。搜狐也都有了

注:代码会在文章的最后提供

1.环境

各种android的环境文章已经有非常多了,事实上也不须要什么,官方有个eclipse和sdk集成的包,下载下来之后就能够执行了。当然。假设你说你翻不了墙。你能够跟我说一声……

话不多说,咱就假定你已经有了环境





建好你的android  project

大家都知道,我这人不喜欢把一样事情做两遍,好吧,我开了个项目叫德国队吧(贴吧中。比較常去的两个吧)尽管是不同的名字,可是我会把它搞的跟搞笑吧一样(教程完了之后,再把这个坑填了)。好。我的项目:

在開始之前呢,先给大家一个地址:

http://jgilfelt.github.io/android-actionbarstylegenerator/#name=example&compat=appcompat&theme=light&actionbarstyle=solid&texture=0&hairline=0&neutralPressed=0&backColor=fff%2C100&secondaryColor=fff%2C100&tabColor=f80%2C100&tertiaryColor=fff%2C100&accentColor=fff%2C100&cabBackColor=fff%2C100&cabHighlightColor=fff%2C100

对,里面是actionbar的设计,相关的内容咱也不多介绍了 ,选好你的样式。点击那个downloadzipbutton,把包下载下来,替换到项目中去。另外替换的时候。文件要记得改动。比方styles_example.xml(values和values-v14下的都要),还有mainfanst里面改动成你自己的样式,来看下效果:(图标什么的,贴吧里面copy的)

ok,先做点測试。打开我们的MainActivity

package com.jov.germany;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL; import android.os.Bundle;
import android.support.v7.app.ActionBarActivity; public class MainActivity extends ActionBarActivity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
testResource();
}
private void testResource(){
new Thread(new Runnable(){
@Override
public void run() {
getContentFromNetwork();
}
}).start();
}
private boolean getContentFromNetwork() {
String path = "http://tie163.qiniudn.com/record.txt";
URL url;
String str = "";
try {
url = new URL(path);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(6 * 1000);
if (conn.getResponseCode() == 200) {
InputStream inStream = conn.getInputStream();
str = readContent(inStream);
System.out.println("test result="+str);
}
conn.disconnect();
return true;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return false;
} private String readContent(InputStream inStream) {
StringBuilder resultData = new StringBuilder("");
try {
InputStreamReader isr = new InputStreamReader(inStream);
BufferedReader buffer = new BufferedReader(isr);
String inputLine = null;
while ((inputLine = buffer.readLine()) != null) {
resultData.append(inputLine);
}
buffer.close();
isr.close();
} catch (IOException e) {
e.printStackTrace();
}
return resultData.toString();
}
}

最后在mainfast.xml里增加以下的权限

  <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

測试一下,是否获取到了我们的网络资源:

你的是否成功了呢?

ok。我们继续

2,布局

咱们用tabhost作为基本的菜单。话不多说。看代码:

activity_main.xml

<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@android:id/tabhost"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true" > <LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" > <TabWidget
android:id="@android:id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
</TabWidget> <FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="match_parent"
android:layout_height="match_parent" > <fragment
android:id="@+id/image_tab"
android:name="com.jov.germany.frame.ImageFrame"
android:layout_width="match_parent"
android:layout_height="match_parent" /> <fragment
android:id="@+id/text_tab"
android:name="com.jov.germany.frame.TextFrame"
android:layout_width="match_parent"
android:layout_height="match_parent" /> <fragment
android:id="@+id/both_tab"
android:name="com.jov.germany.frame.BothFrame"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
</LinearLayout> </TabHost>

当中fragment的name里的类,等会会说,

ok。打开MainActivity

咱们又一次改动一下:

package com.jov.germany;

import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.widget.TabHost; public class MainActivity extends ActionBarActivity {
private TabHost tabHost; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initTab();
} private void initTab() {
tabHost = (TabHost) findViewById(android.R.id.tabhost);
tabHost.setup();
// tabHost.setBackgroundResource(R.drawable.topbar_bg);
tabHost.addTab(tabHost.newTabSpec("imageTab").setIndicator("图片")
.setContent(R.id.image_tab));
tabHost.addTab(tabHost.newTabSpec("textTab").setIndicator("日常")
.setContent(R.id.text_tab));
tabHost.addTab(tabHost.newTabSpec("bothTab").setIndicator("合集")
.setContent(R.id.both_tab));
tabHost.setCurrentTab(0);
}
}

以下来建我们的frame,新建ImageFrame.java、TextFrame.java、BothFrame.java里面的内容基本差点儿相同,以下给一个样例:

ImageFrame.java

package com.jov.germany.frame;

import android.annotation.SuppressLint;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup; import com.jov.germany.R; @SuppressLint("NewApi")
public class ImageFrame extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.image_frame, container, false);
}
}

ok我们还没有相应的layout。来一个image_frame.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="match_parent" > </RelativeLayout>

看下效果:

另外的两个是一样的哦,大家就自己建把,好把,先到这里。我们的框架已经有了,就等往里面塞东西了。

临时先到这里。。

代码点击这里

[android开发之内容更新类APP]三、项目的基本功能之布局的更多相关文章

  1. [android开发之内容更新类APP]二、这几日的结果

    android教程即将開始 话说这开了blog之后,就一直在试用自己的app,发现.TM的真的非常不爽,不好用,好吧.本来打算放弃了.只是看到手机里还有还有一个坑,干脆又一次做一个吧. 原来的神回复A ...

  2. wemall app商城源码android开发MD5加密工具类

    wemall-mobile是基于WeMall的android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享android开发MD5加密工具类主要代码,供 ...

  3. 【视频】零基础学Android开发:蓝牙聊天室APP(三)

    零基础学Android开发:蓝牙聊天室APP第三讲 3.1 ImageView.ImageButton控件具体解释 3.2 GridView控件具体解释 3.3 SimpleAdapter适配器具体解 ...

  4. Android开发怎么让自己的APP UI漂亮、大方(配色篇二)

    我们在没有效果图的app开发中有一件事情肯定很头疼:一个按钮的调色改过来改过去,还是很难看,最终只能暂时作罢,浪费了大量的开发时间和精力.开发规范篇见Android开发怎么让自己的APP UI漂亮.大 ...

  5. 谷歌推出全新Android开发语言Sky:让App更流畅

    土豆网同步更新:http://www.tudou.com/plcover/VHNh6ZopQ4E/   使用HTML 创建Mac OS App 视频教程. 官方QQ群: (1)App实践出真知 434 ...

  6. 为什么那么多人想开发一元夺宝类app?

    别拿你的无知和愚蠢,来证明主观的判断! 国人对一切事物具有怀疑的本性是好的, 但是若不建立于科学的分析方法, 那就是愚昧! 身边有朋友玩夺宝投入较多,产出较少,于是向我求助.想从数据分析的角度知道到底 ...

  7. 【视频】零基础学Android开发:蓝牙聊天室APP(二)

    零基础学Android开发:蓝牙聊天室APP第二讲 2.1 课程内容应用场景 2.2 Android UI设计 2.3 组件布局:LinearLayout和RelativeLayout 2.4 Tex ...

  8. Android开发怎么让自己的APP UI漂亮、大方(规范篇一)

    首先,笔者是站立在开发者的角度来看UI设计的,欢迎专业人士提供指导,不多说,来看怎么把UI设计和开发高效结合起来~ 一.约定APP开发中的一些规则 1.大部分图标满足HDPI(高清)即可,比如:大众点 ...

  9. 【视频】零基础学Android开发:蓝牙聊天室APP(四)

    零基础学Android开发:蓝牙聊天室APP第四讲 4.1 ListView控件的使用 4.2 BaseAdapter具体解释 4.3 ListView分布与滚动事件 4.4 ListView事件监听 ...

随机推荐

  1. PSCollectionView瀑布流实现

    [-] 一基本原理 二具体实现 相关数据结构 视图更新方式 relayoutViews方法 removeAndAddCellsIfNecessary方法 select方法 重用数据块视图机制 三使用方 ...

  2. 什么是进程And线程

    原创 2015年02月01日 11:49:01   学习.net 时遇到了两个新词汇:进程和线程.书上的太深奥,就查了查资料,整合下,希望对大家有帮助. [比喻]:用手去抓苹果,很显然一根手指是不行, ...

  3. Struts2数据验证机制

    1. 手动验证的实现 只需要在继承ActionSupport类的情况下,直接重写validate()方法即可.使用validate()方法可以对用户请求的多个Action方法进行验证,但其验证的逻辑是 ...

  4. AndroidStudio用Cmake方式编译NDK代码(cmake配置.a库)

    1.cmake是什么? CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程).他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C+ ...

  5. windows环境按照dcm4chee

    背景: dcm4chee是dcm4che开源项目中的一部分,是一款符合IHE规定的影像管理/归档应用.dcm4chee遵循DICOM.HL7标准,实现了图像存储.图像提取.及健康领域的工作流程管理.d ...

  6. javascript常用技巧归纳

    最近归纳了下,发现还很多的哦1 javascript捕捉方向键  <HTML><HEAD><title>反选</title><script lan ...

  7. mysql的正则表达式

    所谓正在表达式,就是通过模式去匹配一类字符串.MySQL支持的模式字符如下表所示: MySQL支持的模式字符 模式字符 含义 ^ 匹配字符串的开始部分 $ 匹配字符串的结束部分 . 匹配字符串中的任意 ...

  8. 转: SVN使用教程总结(图文丰富,相当详细)

    转自:http://www.cnblogs.com/armyfai/p/3985660.html SVN使用教程总结   SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生 ...

  9. Report Studio中目录结构报表浅析

    一:场景:在一个报表中如果存在多个页面,每个页面显示不同的数据,如何通过目录控件实现对每一个报表的友好访问呢?下面我们就来看一下下面的效果,如下图1,2 图1:-------------------- ...

  10. dede 怎样调用其它栏目的文章或者缩略图列表且有分页效果?

    提问i:我做一个站点.有5个栏目,第5个栏目想把前4个栏目的文章都调用一下,搞一个汇总的文章集合. 发现用arclist调用不能设置pagesize的属性.从而不能给文章分页.然而list貌似不能调用 ...