• 简单模拟QQ界面框架。


     1 package com.lixu.qqjiemian;
     2 
     3 import java.util.Timer;
     4 import java.util.TimerTask;
     5 import android.app.Activity;
     6 import android.content.Intent;
     7 import android.os.Bundle;
     8 import android.view.Window;
     9 //欢迎界面
    10 public class WelcomActivity extends Activity {
    11     @Override
    12     protected void onCreate(Bundle savedInstanceState) {
    13         super.onCreate(savedInstanceState);
    14         requestWindowFeature(Window.FEATURE_NO_TITLE);
    15         setContentView(R.layout.welcom);
    16         
    17         
    18         // 计时器
    19         TimerTask timetask = new TimerTask() {
    20 
    21             @Override
    22             public void run() {
    23                 Intent intent=new Intent(WelcomActivity.this, MainActivity.class);
    24                 startActivity(intent);
    25 
    26             }
    27         };
    28         // 设置时间长短
    29         Timer time = new Timer();
    30         time.schedule(timetask, 3000);
    31 
    32     }
    33 }
      1 package com.lixu.qqjiemian;
      2 
      3 import android.app.Activity;
      4 import android.app.Fragment;
      5 import android.app.FragmentManager;
      6 import android.app.FragmentTransaction;
      7 import android.graphics.Color;
      8 import android.os.Bundle;
      9 import android.view.View;
     10 import android.view.Window;
     11 import android.widget.TextView;
     12 
     13 public class MainActivity extends Activity implements android.view.View.OnClickListener {
     14     private TextView xiaoxi;
     15     private TextView lianxiren;
     16     private TextView dongtai;
     17 
     18     private TextView title;
     19 
     20     private Fragment xiaoxiFragment;
     21     private Fragment lianxirenFragment;
     22     private Fragment dongtaiFragment;
     23 
     24     @Override
     25     protected void onCreate(Bundle savedInstanceState) {
     26         super.onCreate(savedInstanceState);
     27         
     28         requestWindowFeature(Window.FEATURE_NO_TITLE);
     29         setContentView(R.layout.activity_main);
     30 
     31         title = (TextView) findViewById(R.id.title);
     32 
     33         xiaoxi = (TextView) findViewById(R.id.xiaoxi);
     34         lianxiren = (TextView) findViewById(R.id.lianxiren);
     35         dongtai = (TextView) findViewById(R.id.dongtai);
     36 
     37         xiaoxi.setOnClickListener(this);
     38         lianxiren.setOnClickListener(this);
     39         dongtai.setOnClickListener(this);
     40 
     41         xiaoxiFragment = new XiaoxiFragment();
     42         lianxirenFragment = new LianxirenFragment();
     43         dongtaiFragment = new DongtaiFragment();
     44         // 初始化的界面设置
     45         choose(1);
     46         title.setText(xiaoxi.getText() + " ");
     47         chooseFragment(xiaoxiFragment);
     48 
     49     }
     50 
     51     // 设置点击事件
     52     @Override
     53     public void onClick(View v) {
     54         switch (v.getId()) {
     55         case R.id.xiaoxi:
     56             choose(1);
     57 
     58             chooseFragment(xiaoxiFragment);
     59 
     60             title.setText(xiaoxi.getText() + " ");
     61 
     62             break;
     63         case R.id.lianxiren:
     64 
     65             choose(2);
     66 
     67             chooseFragment(lianxirenFragment);
     68 
     69             title.setText(lianxiren.getText() + " ");
     70 
     71             break;
     72         case R.id.dongtai:
     73 
     74             choose(3);
     75 
     76             chooseFragment(dongtaiFragment);
     77 
     78             title.setText(dongtai.getText() + " ");
     79 
     80             break;
     81 
     82         default:
     83             break;
     84         }
     85 
     86     }
     87 
     88     private void choose(int pos) {
     89         switch (pos) {
     90         case 1:
     91             xiaoxi.setTextColor(Color.BLUE);
     92             xiaoxi.setBackgroundColor(Color.GRAY);
     93 
     94             lianxiren.setTextColor(Color.GRAY);
     95             lianxiren.setBackgroundColor(Color.WHITE);
     96 
     97             dongtai.setTextColor(Color.GRAY);
     98             dongtai.setBackgroundColor(Color.WHITE);
     99 
    100             break;
    101         case 2:
    102             lianxiren.setTextColor(Color.BLUE);
    103             lianxiren.setBackgroundColor(Color.GRAY);
    104 
    105             xiaoxi.setTextColor(Color.GRAY);
    106             xiaoxi.setBackgroundColor(Color.WHITE);
    107 
    108             dongtai.setTextColor(Color.GRAY);
    109             dongtai.setBackgroundColor(Color.WHITE);
    110             break;
    111 
    112         case 3:
    113             dongtai.setTextColor(Color.BLUE);
    114             dongtai.setBackgroundColor(Color.GRAY);
    115 
    116             lianxiren.setTextColor(Color.GRAY);
    117             lianxiren.setBackgroundColor(Color.WHITE);
    118 
    119             xiaoxi.setTextColor(Color.GRAY);
    120             xiaoxi.setBackgroundColor(Color.WHITE);
    121             break;
    122 
    123         default:
    124             break;
    125         }
    126     }
    127 
    128     // 选择不同的Fragment 的方法
    129     private void chooseFragment(Fragment fragment) {
    130 
    131         FragmentManager fm = this.getFragmentManager();
    132         FragmentTransaction ft = fm.beginTransaction();
    133         ft.replace(R.id.fragment, fragment);
    134         // 提交
    135         ft.commit();
    136 
    137     }
    138 
    139 }
     1 package com.lixu.qqjiemian;
     2 
     3 import android.app.Fragment;
     4 import android.graphics.Color;
     5 import android.os.Bundle;
     6 import android.view.LayoutInflater;
     7 import android.view.View;
     8 import android.view.ViewGroup;
     9 import android.widget.TextView;
    10 
    11 public class XiaoxiFragment extends Fragment {
    12 
    13     @Override
    14     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    15 
    16         View view = inflater.inflate(android.R.layout.simple_list_item_1, null);
    17 
    18         TextView tv = (TextView) view.findViewById(android.R.id.text1);
    19         tv.setText("消息界面");
    20         tv.setBackgroundColor(Color.RED);
    21 
    22         return view;
    23     }
    24 }
     1 package com.lixu.qqjiemian;
     2 
     3 import android.app.Fragment;
     4 import android.graphics.Color;
     5 import android.os.Bundle;
     6 import android.view.LayoutInflater;
     7 import android.view.View;
     8 import android.view.ViewGroup;
     9 import android.widget.TextView;
    10 
    11 public class LianxirenFragment extends Fragment {
    12     @Override
    13     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    14 
    15         View view = inflater.inflate(android.R.layout.simple_list_item_1, null);
    16 
    17         TextView tv = (TextView) view.findViewById(android.R.id.text1);
    18         tv.setText("联系人界面");
    19         tv.setBackgroundColor(Color.GREEN);
    20 
    21         return view;
    22     }
    23 }
     1 package com.lixu.qqjiemian;
     2 
     3 import android.app.Fragment;
     4 import android.graphics.Color;
     5 import android.os.Bundle;
     6 import android.view.LayoutInflater;
     7 import android.view.View;
     8 import android.view.ViewGroup;
     9 import android.widget.TextView;
    10 
    11 public class DongtaiFragment extends Fragment{
    12     
    13     @Override
    14     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    15 
    16         View view = inflater.inflate(android.R.layout.simple_list_item_1, null);
    17 
    18         TextView tv = (TextView) view.findViewById(android.R.id.text1);
    19         tv.setText("动态界面");
    20         tv.setBackgroundColor(Color.YELLOW);
    21 
    22         return view;
    23     }
    24 
    25 }

    xml:

     1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     2     xmlns:tools="http://schemas.android.com/tools"
     3     android:id="@+id/LinearLayout1"
     4     android:layout_width="match_parent"
     5     android:layout_height="match_parent"
     6     android:orientation="vertical" >
     7 
     8     <TextView
     9         android:id="@+id/title"
    10         android:layout_width="match_parent"
    11         android:layout_height="wrap_content"
    12         android:gravity="center"
    13         android:layout_weight="1"
    14         android:textColor="#f44336"
    15         android:textSize="30sp" />
    16 
    17     <FrameLayout
    18         android:id="@+id/fragment"
    19         android:layout_width="match_parent"
    20         android:layout_height="wrap_content"
    21         android:layout_weight="10" />
    22 
    23     <LinearLayout
    24         android:layout_width="match_parent"
    25         android:layout_height="wrap_content"
    26         android:layout_weight="1"
    27         android:orientation="horizontal" >
    28 
    29         <TextView
    30             android:id="@+id/xiaoxi"
    31             android:layout_width="wrap_content"
    32             android:layout_height="match_parent"
    33             android:layout_weight="1"
    34             android:gravity="center"
    35             android:text="消息"
    36             android:textSize="15sp" />
    37 
    38         <TextView
    39             android:id="@+id/lianxiren"
    40             android:layout_width="wrap_content"
    41             android:layout_height="match_parent"
    42             android:layout_weight="1"
    43             android:gravity="center"
    44             android:text="联系人"
    45             android:textSize="15sp" />
    46 
    47         <TextView
    48             android:id="@+id/dongtai"
    49             android:layout_width="wrap_content"
    50             android:layout_height="match_parent"
    51             android:layout_weight="1"
    52             android:gravity="center"
    53             android:text="动态"
    54             android:textSize="15sp" />
    55     </LinearLayout>
    56 
    57 </LinearLayout>
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
    
        <ImageView
            android:id="@+id/welcom"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@drawable/welcome" />
    
    </LinearLayout>

    manifest:<activity
                android:name=".WelcomActivity"
                android:label="@string/app_name"
                android:noHistory="true" >
     android:noHistory="true"写这个点击回退按钮 不回再回到欢迎界面。

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     3     package="com.lixu.qqjiemian"
     4     android:versionCode="1"
     5     android:versionName="1.0" >
     6 
     7     <uses-sdk
     8         android:minSdkVersion="19"
     9         android:targetSdkVersion="19" />
    10 
    11     <application
    12         android:allowBackup="true"
    13         android:icon="@drawable/ic_launcher"
    14         android:label="@string/app_name"
    15         android:theme="@style/AppTheme" >
    16         <activity
    17             android:name=".MainActivity"
    18             android:label="@string/app_name" >
    19         </activity>
    20         
    21         <activity
    22             android:name=".WelcomActivity"
    23             android:label="@string/app_name"
    24             android:noHistory="true" >
    25             <intent-filter>
    26                 <action android:name="android.intent.action.MAIN" />
    27 
    28                 <category android:name="android.intent.category.LAUNCHER" />
    29             </intent-filter>
    30         </activity>
    31     </application>
    32 
    33 </manifest>

    运行效果图:

  • 相关阅读:
    对象关系一对多转换为一对一的方案——中介者模式总结
    接口转换的利器——适配器模式总结
    多线程场景设计利器:分离方法的调用和执行——命令模式总结
    对比总结三个工厂模式(简单工厂,工厂方法,抽象工厂)
    创建多个“产品”的方式——工厂方法模式总结
    Java反射+简单工厂模式总结
    最简单的设计模式——单例模式的演进和推荐写法(Java 版)
    对复合(协作)算法/策略的封装方法——装饰模式总结
    Java对象序列化全面总结
    创建产品族的方式——抽象工厂模式
  • 原文地址:https://www.cnblogs.com/labixiaoxin/p/5039792.html
Copyright © 2020-2023  润新知