Android菜鸟App开发,第一个App(第二天)

今天原计划是完成第一个模块【时间小计】的页面框架及功能:

时间小计的第一个显示页面,即app进入后的第一个页面,通过大的圆圈和24小时字样显示。点击大的圆圈显示第二个页面,即设置学习、休闲、睡眠的三个选项,设置后更新第一个页面,在圆圈中通过四种颜色蓝、红、绿、黑分别表示学习、休闲、睡眠和未设置的时间。

但是由于个人时间的安排和外部原因,浪费了5-6小时的时间,另外因为拓展式的需求设计,确实遇到很多以前没有涉及或者没有深入学习的内容,这与本人自学的水平有比较大的鸿沟,所以深深的感觉自己学习之路才开始,路艰且又长。当然一般按照软件相关工作的计划,一般都是要双倍时间才能完成的,不过粗略计算了一下,感觉其实今天只完成1/4的计划内容,主要工作如下:

1、完成了第一个模块,第一个页面的初步的绘制。


  1. 主要代码:Hour24Cycle.java,主要绘制一个圆环,主要代码如下:
package com.noodles.timelocus.view;

import android.content.Context;
import android.content.Intent;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.RectF;
import android.util.AttributeSet;
import android.view.View;
import com.noodles.timelocus.activity.HourSet;

/**
 * 绘制一个圆环
 * Created by noodles on 2016/3/21.
 */
public class Hour24Cycle extends View implements View.OnClickListener {

    private Paint mpaint;

    private Rect mRect;

    private Context mContext;
/*    public Hour24Cycle(Context context) {
        super(context);
    }*/

    public Hour24Cycle(Context context, AttributeSet attrs) {
        super(context, attrs);
        mContext = context;
        mpaint = new Paint(Paint.ANTI_ALIAS_FLAG);
        mRect = new Rect();
        setOnClickListener(this);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        float pointX = getWidth() / 2;
        float pointY = getHeight() / 3;

        float radius = 200;

        mpaint.setColor(Color.BLUE);
        setDraw(canvas, mpaint, pointX, pointY, radius, 0, 360);
        mpaint.setColor(Color.WHITE);
        setDraw(canvas, mpaint, pointX, pointY, radius - 50, 0, 360);

        /*
         * 绘制一个24的数字
         */
        mpaint.setColor(Color.BLACK);
        mpaint.setTextSize(100);
        mpaint.getTextBounds("24", 0, 2, mRect);
        float textWidth = mRect.width();
        float textHeight = mRect.height();
        canvas.drawText("24", pointX - textWidth / 2, pointY + textHeight / 2, mpaint);


    }
    /**
     * 绘制两个360的弧度,里面的小圆弧为白色,外面大圆弧蓝色,所以看起来像一个圆环
     */

    private void setDraw(Canvas canvas, Paint paint, float pointX, float pointY, float radius, float startAngle, float sweepAngle) {
        RectF mRectf = new RectF(pointX - radius, pointY - radius, pointX + radius, pointY + radius);
        canvas.drawArc(mRectf, startAngle, sweepAngle, false, paint);
    }

    /**
     * 跳转到第二个页面
     */

    @Override
    public void onClick(View v) {
        Intent intent = new Intent(mContext, HourSet.class);
        mContext.startActivity(intent);
    }
}

  1. 2.底部导航栏:bottom_action_bar.xml

<?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="60dp"
    android:baselineAligned="false">

    <LinearLayout
        android:id="@+id/time_subtotal"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:orientation="vertical">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="@string/time_subtotal" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/date_record"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:orientation="vertical">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="@string/date_record" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/review"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:orientation="vertical">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="@string/review" />
    </LinearLayout>

</LinearLayout>
<strong><span style="white-space:pre">	</span>3.连接以上两个页面的显示页面:index_activity.xml</strong>
<pre name="code" class="java"><?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".activity.TimeSubtotal">

    <com.noodles.timelocus.view.Hour24Cycle
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"/>

    <include
        layout="@layout/bottom_action_bar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true" />

</RelativeLayout>


这是本人菜鸟学步,我知道存在很多的问题,主要是先把自己犯的每一个愚蠢的错误和不足都暴露出来,一是可以敞开心胸,正视自己,另外一个就是把每天的事情大致都记录下来,提醒自己不能再自甘堕落了,比较很多人比我现在都已经强10倍不值,别人还比我更努力,必须向大神们学习。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值