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

应用宝的下载地址: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>

看下效果:

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

临时先到这里。。

代码点击这里

时间: 2024-10-17 11:19:25

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

[android开发之内容更新类APP]一、开始前的整体说明

1.博主的日常 话说很久没更新blog了,话说消失了好长一段时间了呢,话说...你妹的,能不能不要这么二. 好吧,话说...我操,最近在忙什么呢,其实也没什么,%¥¥%*)0--嗯,对,就是做了这么多的事情. 有一天我打开手机(你妹,天天不都在看手机吗),具体来说是打开了某个分类文件夹,发现里面自己以前的很多坑(其实是自己以前想做的app,不过都只建好了demo,没有做实际的开发),左右无事(鲁的累了),把其中的实现一下吧. 好,先明确一下我们要做的东西,什么东西?你要做什么东西,快tm的招出来

[android开发之内容更新类APP]四、项目的基本功能之布局(续)

昨天才拿到电脑,不说了,都是泪 http://joveth.github.io/funny/ 1.选项卡的滑动效果 要知道,用这个选项卡就是想让它滑动起来,不然的话,我才不喜欢用它呢. 在让他滑动之前,先来说一下上一张 的问题,话说,按照设计器下载下来的包,替换到 我们的 res之后,我发现,tabhost的选项颜色没有变,在我尝试 了各种方法之后,终于,我tm放弃了,好吧,正好 找到了这个滑动效果的demo,还有选项卡的颜色切换效果. 话不多说 ,改进我们的东西吧. 1.修改我们的 aciti

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

android教程即将开始 话说这开了blog之后,就一直在试用自己的app,发现,TM的真的很不爽,不好用,好吧,本来打算放弃了,不过看到手机里还有另一个坑,干脆重新做一个吧. 原来的神回复APP地址http://app.sohu.com/app/info?app_id=24203  有兴趣的可以看看 现在的搞笑吧APP地址http://apk.91.com/Soft/Android/com.jov.laughter-1.html  之后的文章就拿这个APP作为说明,但是第一章的这些坑,咱就不

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

wemall-mobile是基于WeMall的android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享android开发MD5加密工具类主要代码,供技术员参考学习. package com.gzcivil.utils; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgori

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

零基础学Android开发:蓝牙聊天室APP第三讲 3.1 ImageView.ImageButton控件详解 3.2 GridView控件详解 3.3 SimpleAdapter适配器详解 3.4 事件监听器:OnItemClickListener 3.5 输入和显示表情图像 在线收看:http://www.3g-edu.org/news/video023.htm 视频下载:http://pan.baidu.com/s/1kTmiNqf

【Android开发学习笔记】【第三课】Activity和Intent

首先来看一个Activity当中启动另一个Activity,直接上代码说吧: (1)首先要多个Activity,那么首先在res-layout下新建一个 Other.xml,用来充当第二个Activity的布局文件 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&qu

Android自定义View——实现理财类APP七日年化收益折线图效果

这段时间的自定义View学习,学会了绘制柱状图.绘制折线图.绘制进度控件,那我们今天就来聊聊另外一种自定义的View,这就是我们常见的七日年化收益折线图效果.先看看长什么样. 这就是效果图了,元素相对而言还是比较多的,这里有线.柱状图.文字.折线.点等等.看起来好像很复杂,但是呢,只要一步一步的实现,那还是可以达到这种效果的,之前我们说过的, 自定义View,就像是在photo shop里面画图,想要什么就画什么,我们可以有很多的画笔工具,也可以有很多的图层. 先看看我们这一次用到哪些变量. p

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

我们在没有效果图的app开发中有一件事情肯定很头疼:一个按钮的调色改过来改过去,还是很难看,最终只能暂时作罢,浪费了大量的开发时间和精力.开发规范篇见Android开发怎么让自己的APP UI漂亮.大方(规范篇一) 一.APP常用搭配参考 底层背景色,内容背景色 ,两种颜色相近,但能区分标题背景色 任意花色标题文字色 通常为黑色或白色黑体内容文字 通常为黑色或白色宋体不重要的内容 浅灰色重要的内容 标题背景色附近的颜色通常比标题色亮,为强调色彩色颜色组合方式有,互补色,相似色,3角色(红.黄.蓝

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

土豆网同步更新:http://www.tudou.com/plcover/VHNh6ZopQ4E/ 使用HTML 创建Mac OS App 视频教程. 官方QQ群: (1)App实践出真知 434558944 (2)App学习交流 452180823 百度网盘同步:http://pan.baidu.com/s/1jG1Q58M 分享  [中文纪录片]互联网时代                 http://pan.baidu.com/s/1qWkJfcS 谷歌推出全新Android开发语言Sky