zoukankan      html  css  js  c++  java
  • 写程序的欢迎界面(运用画图方法画圆球)。

     1 package com.lixu.drawable;
     2 
     3 import android.app.Activity;
     4 import android.os.Bundle;
     5 import android.view.Window;
     6 import android.view.WindowManager;
     7 import untils.Untils;
     8 
     9 public class MainActivity extends Activity {
    10     private Activity activity;
    11 
    12     @Override
    13     protected void onCreate(Bundle savedInstanceState) {
    14         super.onCreate(savedInstanceState);
    15         activity = this;
    16         // 设置全屏
    17         requestWindowFeature(Window.FEATURE_NO_TITLE);
    18         Untils.toggleFullscreen(activity, true);
    19         setContentView(R.layout.main);
    20 
    21     }
    22 
    23 }
      1 package com.lixu.drawable;
      2 
      3 import android.app.Activity;
      4 import android.content.Intent;
      5 import android.os.Bundle;
      6 import android.support.v4.app.Fragment;
      7 import android.support.v4.app.FragmentActivity;
      8 import android.support.v4.app.FragmentManager;
      9 import android.support.v4.app.FragmentPagerAdapter;
     10 import android.support.v4.view.ViewPager;
     11 import android.support.v4.view.ViewPager.OnPageChangeListener;
     12 import android.view.LayoutInflater;
     13 import android.view.View;
     14 import android.view.View.OnClickListener;
     15 import android.view.ViewGroup;
     16 import android.view.Window;
     17 import android.widget.Button;
     18 import android.widget.ImageView;
     19 import untils.Untils;
     20 
     21 public class WelcomActivity extends FragmentActivity {
     22     private Mydrawable mMydrawable;
     23     private Activity activity;
     24 
     25     private int[] images = { R.drawable.p1, R.drawable.p2, R.drawable.p3, R.drawable.p4, R.drawable.p5,
     26             R.drawable.p6, };
     27 
     28     @SuppressWarnings("deprecation")
     29     @Override
     30     protected void onCreate(Bundle savedInstanceState) {
     31         activity = this;
     32         super.onCreate(savedInstanceState);
     33         // 让程序全屏
     34         requestWindowFeature(Window.FEATURE_NO_TITLE);
     35         Untils.toggleFullscreen(activity, true);
     36 
     37         setContentView(R.layout.activity_main);
     38 
     39         mMydrawable = (Mydrawable) findViewById(R.id.mydrawable);
     40         // 根据情况设置圆球数量
     41         mMydrawable.setCount(images.length);
     42 
     43         ViewPager vp = (ViewPager) findViewById(R.id.vp);
     44 
     45         vp.setAdapter(new MyAdapter(this.getSupportFragmentManager()));
     46 
     47         vp.setOnPageChangeListener(new OnPageChangeListener() {
     48             // 设置页面滑动时改变红点的位置
     49             @Override
     50             public void onPageSelected(int pos) {
     51 
     52                 mMydrawable.choose(pos);
     53 
     54             }
     55 
     56             @Override
     57             public void onPageScrolled(int arg0, float arg1, int arg2) {
     58 
     59             }
     60 
     61             @Override
     62             public void onPageScrollStateChanged(int arg0) {
     63 
     64             }
     65         });
     66 
     67     }
     68 
     69     private class MyAdapter extends FragmentPagerAdapter {
     70 
     71         public MyAdapter(FragmentManager fm) {
     72             super(fm);
     73         }
     74 
     75         @Override
     76         public Fragment getItem(final int pos) {
     77 
     78             Fragment f = new Fragment() {
     79                 @Override
     80                 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
     81 
     82                     if (pos == (getCount() - 1)) {
     83 
     84                         View view = inflater.inflate(R.layout.fragmentmain, null);
     85                         Button btn = (Button) view.findViewById(R.id.btn);
     86                         btn.setOnClickListener(new OnClickListener() {
     87 
     88                             @Override
     89                             public void onClick(View v) {
     90                                 Intent intent = new Intent(activity, MainActivity.class);
     91                                 startActivity(intent);
     92                                 // 进入主程序关闭初始动画界面
     93                                 activity.finish();
     94                             }
     95                         });
     96                         ImageView iv = (ImageView) view.findViewById(R.id.iv2);
     97                         iv.setImageResource(images[pos]);
     98                         return view;
     99 
    100                     } else {
    101                         View view = inflater.inflate(R.layout.fragment, null);
    102 
    103                         ImageView iv = (ImageView) view.findViewById(R.id.iv1);
    104                         iv.setImageResource(images[pos]);
    105 
    106                         return view;
    107 
    108                     }
    109                 }
    110             };
    111 
    112             return f;
    113         }
    114 
    115         @Override
    116         public int getCount() {
    117             return images.length;
    118         }
    119 
    120     }
    121 
    122 }
     1 package com.lixu.drawable;
     2 
     3 import android.content.Context;
     4 import android.graphics.Canvas;
     5 import android.graphics.Color;
     6 import android.graphics.Paint;
     7 import android.util.AttributeSet;
     8 import android.util.Log;
     9 import android.view.View;
    10 
    11 public class Mydrawable extends View {
    12     private int posfirst = 0;
    13     // 圆球的间距
    14     private int juli = 50;
    15     // 圆球的数量
    16     private int count = 0;
    17 
    18     // 设置圆球的半径
    19     private float radius = 10;
    20 
    21     // 用这个构造方法,用其他会报错
    22     public Mydrawable(Context context, AttributeSet attrs) {
    23         super(context, attrs);
    24     }
    25 
    26     // 根据情况设置圆球数量
    27     public void setCount(int a) {
    28         count = a;
    29     }
    30 
    31     public void choose(int pos) {
    32         posfirst = pos;
    33         // 执行这个方法 会重新绘图
    34         this.invalidate();
    35     }
    36 
    37     @Override
    38     protected void onDraw(Canvas canvas) {
    39         super.onDraw(canvas);
    40 
    41         Paint p = new Paint();
    42         // 去掉图形的锯齿,使得圆球更圆滑
    43         p.setAntiAlias(true);
    44 
    45         // 获取屏幕X Y坐标
    46         float w = getWidth();
    47         float h = getHeight();
    48 
    49         for (int i = 0; i < 6; i++) {
    50             if (i == posfirst) {
    51 
    52                 p.setColor(Color.RED);
    53                 // 画一个红色圆形
    54                 canvas.drawCircle((w - (count - 1) * juli) / 2 + juli * i, (float) (h * 0.9), radius + 5, p);
    55             } else {
    56 
    57                 p.setColor(Color.GRAY);
    58                 // 画一个灰色圆形
    59                 canvas.drawCircle((w - (count - 1) * juli) / 2 + juli * i, (float) (h * 0.9), radius, p);
    60 
    61             }
    62 
    63         }
    64 
    65     }
    66 
    67 }

    工具类:

     1 package untils;
     2 
     3 import android.app.Activity;
     4 import android.view.WindowManager;
     5 
     6 public class Untils {
     7 
     8     
     9     public static void toggleFullscreen(Activity activity,boolean fullScreen) {
    10         // fullScreen为true时全屏
    11 
    12         WindowManager.LayoutParams attrs = activity.getWindow().getAttributes();
    13 
    14         if (fullScreen) {
    15             attrs.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
    16         } else {
    17             attrs.flags &= ~WindowManager.LayoutParams.FLAG_FULLSCREEN;
    18         }
    19 
    20         activity.getWindow().setAttributes(attrs);
    21     }
    22 }

    xml文件:

     1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     2     xmlns:tools="http://schemas.android.com/tools"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     tools:context="com.lixu.drawable.WelcomActivity" >
     6 
     7     <com.lixu.drawable.Mydrawable
     8         android:id="@+id/mydrawable"
     9         android:layout_width="match_parent"
    10         android:layout_height="match_parent" />
    11 
    12     <android.support.v4.view.ViewPager
    13         android:id="@+id/vp"
    14         android:layout_width="match_parent"
    15         android:layout_height="match_parent" >
    16     </android.support.v4.view.ViewPager>
    17 
    18 </RelativeLayout>
     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     android:orientation="vertical" >
     6 
     7     <ImageView
     8         android:id="@+id/iv1"
     9         android:layout_width="match_parent"
    10         android:layout_height="match_parent" />
    11 
    12 </LinearLayout>
     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:id="@+id/LinearLayout1"
     4     android:layout_width="match_parent"
     5     android:layout_height="match_parent"
     6     android:orientation="vertical" >
     7 
     8     <ImageView
     9         android:layout_weight="4"
    10         android:id="@+id/iv2"
    11         android:layout_width="match_parent"
    12         android:layout_height="match_parent" />
    13 
    14     <Button
    15         android:layout_weight="1"
    16         android:id="@+id/btn"
    17         android:layout_width="wrap_content"
    18         android:layout_height="wrap_content"
    19         android:layout_gravity="center"
    20         android:text="进入QQ音乐" />
    21 
    22 </LinearLayout>
     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     android:orientation="vertical" >
     6     
     7 <TextView  
     8     android:layout_width="match_parent"
     9     android:layout_height="match_parent"
    10     android:text="我是主程序界面" 
    11     android:textSize="35sp"
    12     android:gravity="center"/>
    13 </LinearLayout>

    运行效果图:

  • 相关阅读:
    Gartner APM 魔力象限技术解读——全量存储? No! 按需存储?YES!
    微信不再提供小程序打开App?借助H5为App引流的方式你必须知道!
    来电科技:基于 Flink + Hologres 的实时数仓演进之路
    进击的云原生,为开发者提供更多可能性
    分久必合的Lindorm传奇
    雷锋网独家解读:阿里云原生应用的布局与策略
    「技术人生」第4篇:技术、业务、组织的一般规律及应对策略
    云上安全保护伞--SLS威胁情报集成实战
    Linux date命令实现日期查询与UTC时戳转换
    VScode调试运行cmake加入环境变量
  • 原文地址:https://www.cnblogs.com/labixiaoxin/p/5066904.html
Copyright © 2011-2022 走看看