android 模仿微信布局,【Android初学者】框架布局:仿微信页面制作

学习Android有一段时间了,跟大家分享一下经验吧!

如果有错误的地方,有更好的方法,麻烦大家留言指导!

工具:studio2.2,虚拟机版本:4.3,API 18(感觉比5.1的稳定啊!)

例子是先:

1.一个按钮跳转一个子页面,

2.一个子页面框着4个其他页面,

RadioGroup包含 4个RadioButton,

4个页面都在子页显示

效果图:主页

74476132b442a8b23e278201faf40f39.png

a97940e35da592cad2f79eaa2a477383.pngfae73c94c27c246dc800bc530bde04e6.png

fd8c18a6138f961e2c3d32b38c30387d.pngb58b5fe6a82e48346e19cda0fc0faa1d.png

图片很美,效果...暂时是通过单击 onclick跳转,滑动跳转的,还没学会呢....

代码图:一个方法对应一个xml页面

5598e358643f6879933d81181d199b48.png

一、方法

MainActivity.java,继承Activity

package com.open_open.weixin;

import android.app.Activity;

import android.content.Intent;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

}

public void onSubmit(View view){

Intent intent = new Intent(this,TwoActivity.class);

startActivity(intent);

}

}

activity_main.xml 这个是线型布局

二、子页面 TwoActivity.java

继承FragmentActivity

package com.open_open.weixin;

import java.util.List;

import android.os.Bundle;

import android.support.v4.app.Fragment;

import android.support.v4.app.FragmentActivity;

import android.support.v4.app.FragmentManager;

import android.support.v4.app.FragmentTransaction;

import android.widget.RadioGroup;

import android.widget.RadioGroup.OnCheckedChangeListener;

/**

* 负责管理Fragment

* @author Administrator

*

*/

public class TwoActivity extends FragmentActivity {

//声明一个FragmentManager对象

private FragmentManager manager;

//声明一个事务对象

private FragmentTransaction trans;

private RadioGroup rg;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_two);

//获取manager对象

manager=getSupportFragmentManager();

trans=manager.beginTransaction();

//默认绑定第一个Fragment

FragmentOne one=new FragmentOne();

trans.add(R.id.mainFrame, one, "frag");

trans.commit();

//获取按钮组

rg=(RadioGroup)findViewById(R.id.rg);

rg.setOnCheckedChangeListener(new OnCheckedChangeListener() {

@Override

public void onCheckedChanged(RadioGroup group, int checkedId) {

switch(checkedId){

case R.id.r1:

trans=manager.beginTransaction();

trans.replace(R.id.mainFrame,new FragmentOne(), "frag");

trans.addToBackStack("back");

//加入到后退操作栈

trans.commit();

break;

case R.id.r2:

trans=manager.beginTransaction();

trans.replace(R.id.mainFrame, new FragmentTwo(), "frag");

trans.addToBackStack("back");//加入到后退操作栈

trans.commit();

break;

case R.id.r3:

trans=manager.beginTransaction();

trans.replace(R.id.mainFrame, new FragmentThree(), "frag");

trans.addToBackStack("back");//加入到后退操作栈

trans.commit();

break;

case R.id.r4:

trans=manager.beginTransaction();

trans.replace(R.id.mainFrame, new FragmentFour(), "frag");

trans.addToBackStack("back");//加入到后退操作栈

trans.commit();

break;

}

}

});

}

@SuppressWarnings("unused")

private Fragment test(){

//获取当前在fragment栈中存储的所有fragment

Listlist=manager.getFragments();

for (Fragment fragment : list) {

if(fragment.isVisible()){

return fragment;

}

}

return null;

}

}

activity_two.xml

补充:1、自定义颜色一个

2、图片资源

android:drawableTop:+图片

ic_btn_speak_now:麦克风

btn_star_big_off:灰色的星星

btn_star_big_on:黄色点亮的星星

这三个是studio自带的。

8854d95697b34c935460d6705d4b7cbf.png

ac193f8db71a4ab46217f6c5eafbc327.png

FrameLayout:框架布局

三、其他页面:

FragmentOne   - Four .java

这个几乎相同,继承Fragment

红色部分稍微改动即可,

e158694d7f5b3e3ba846413f60e1dee9.png

package com.open_open.weixin;

import android.os.Bundle;

import android.support.annotation.Nullable;

import android.support.v4.app.Fragment;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.EditText;

public class FragmentOne extends Fragment{

//加载Fragment的layout文件,生成View

public View onCreateView(LayoutInflater inflater,ViewGroup container,

Bundle savedInstanceState){

//根据布局文件投影出一个View对象

View view = inflater.inflate(R.layout.testone,container,false);

return view;

}

}

testone.xml

其他三个页面也是一模一样的,背景图片不同罢了,只要改动background这里即可

777ab8c50b3c7d991bf676ded3730b7d.png

补充:

8475cb54d14f10dfafd38baa73245b73.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值