• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > 订单流程view,订单view

订单流程view,订单view

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了view的绘制流程,android view绘制流程,安卓view绘制流程,自定义view的流程,自定义view绘制流程等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

订单流程view,订单view


activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:background="#b2000000"
    android:orientation="vertical"
    >
    <android.support.v7.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:cardCornerRadius="5dp"
        app:cardElevation="3dp"
        app:cardBackgroundColor="#FF2384DD"
        >
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:padding="10dp"
            >
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="商家已接单"
                android:textSize="14.5sp"
                android:textColor="#FFF1AE0D"
                />
            <TextView
                android:layout_marginTop="5dp"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="订单超过12小时自动完成"
                android:textSize="13sp"
                android:textColor="#fff"
                />
            <View
                android:layout_marginTop="10dp"
                android:layout_marginBottom="10dp"
                android:layout_width="match_parent"
                android:layout_height="2dp"
                android:background="@drawable/bg_line"
                android:layerType="software"
                />
            <com.yasin.processdemo.view.ProcessView
                android:id="@+id/id_process"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:texts="@array/process_states"
                />
        </LinearLayout>
    </android.support.v7.widget.CardView>
</LinearLayout>

arrays.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <array name="process_states">
        <item>订单已提交</item>
        <item>已付款</item>
        <item>商家已接单</item>
        <item>已送达</item>
    </array>
</resources>

activity:

public class MainActivity extends AppCompatActivity {
    private ProcessView mProcessView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mProcessView= (ProcessView) findViewById(R.id.id_process);
        startAni();
    }
    private void startAni() {
        ValueAnimator a = ValueAnimator.ofFloat(0, 1);
        a.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator animation) {
                float progress = (float) animation.getAnimatedValue();
                mProcessView.setProgress(progress);
            }
        });
        a.setDuration(10000);
        a.setInterpolator(new AccelerateDecelerateInterpolator());
        a.start();
    }
}

ProcessView :

package com.yasin.processdemo.view;

import android.content.Context;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RadialGradient;
import android.graphics.Shader;
import android.os.Looper;
import android.text.TextPaint;
import android.util.AttributeSet;
import android.util.Log;
import android.util.TypedValue;
import android.view.View;

import com.yasin.processdemo.R;

public class ProcessView extends View {
    /**
     * 默认线宽度
     */
    private static final float D_LINE_WIDTH = 3;
    /**
     * 默认滑动圆点半径
     */
    private static final float D_THUMB_RADIUS = 10;
    /**
     * 默认textsize
     */
    private static final float D_TEXT_SIZE = 13f;
    private static final int D_REACH_COLOR = 0xFFF1AE0D;
    private static final int D_UNREACH_COLOR = Color.WHITE;
    private static final int D_TEXT_COLOR = Color.WHITE;

    private Paint linePaint;
    private TextPaint textPaint;
    private Paint thumbPaint;

    private float mTextSize = xx2px(TypedValue.COMPLEX_UNIT_SP, D_TEXT_SIZE);
    private float mLineWidth = xx2px(TypedValue.COMPLEX_UNIT_DIP, D_LINE_WIDTH);
    private float mThumbRadius = xx2px(TypedValue.COMPLEX_UNIT_DIP, D_THUMB_RADIUS);
    private int mReachedColor = D_REACH_COLOR;
    private int mUnreachedColor = D_UNREACH_COLOR;
    private int mTextColor = D_TEXT_COLOR;

    //当前进度
    private float mProgress = 0.0f;
    //所有的状态文字
    private String[] texts;

    public ProcessView(Context context) {
        this(context, null);
    }

    public ProcessView(Context context, AttributeSet attrs) {
        this(context, attrs, 0);
    }

    public ProcessView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        obtainStyledAttrs(context, attrs, defStyleAttr);
        initViews();
    }

    /**
     * 获取我们的自定义属性
     * @param context
     * @param attrs
     * @param defStyleAttr
     */
    private void obtainStyledAttrs(Context context, AttributeSet attrs, int defStyleAttr) {
        TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.ProcessView, defStyleAttr, 0);
        texts = a.hasValue(R.styleable.ProcessView_texts) ?
                getResources().getStringArray(a.getResourceId(R.styleable.ProcessView_texts, 0)) : texts;
        mLineWidth = a.hasValue(R.styleable.ProcessView_line_width) ?
                a.getDimensionPixelSize(R.styleable.ProcessView_line_width, 0) : mLineWidth;
        mThumbRadius = a.hasValue(R.styleable.ProcessView_thumb_radius) ?
                a.getDimensionPixelSize(R.styleable.ProcessView_thumb_radius, 0) : mThumbRadius;
        mTextSize = a.hasValue(R.styleable.ProcessView_textsize) ?
                a.getDimensionPixelSize(R.styleable.ProcessView_text_color, 0) : mTextSize;
        mReachedColor=a.hasValue(R.styleable.ProcessView_color_reached)?
                a.getColor(R.styleable.ProcessView_color_reached,D_REACH_COLOR):D_REACH_COLOR;
        mUnreachedColor=a.hasValue(R.styleable.ProcessView_color_unreached)?
                a.getColor(R.styleable.ProcessView_color_unreached,D_UNREACH_COLOR):D_UNREACH_COLOR;
        mTextColor=a.hasValue(R.styleable.ProcessView_text_color)?
                a.getColor(R.styleable.ProcessView_text_color,D_TEXT_COLOR):D_TEXT_COLOR;
        a.recycle();
    }

    /**
     * 初始化一些对象
     */
    private void initViews() {
        linePaint = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.DITHER_FLAG);
        linePaint.setStyle(Paint.Style.FILL);
        textPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG | Paint.DITHER_FLAG);
        thumbPaint = new Paint(linePaint);

        textPaint.setTextSize(mTextSize);
        textPaint.setColor(mTextColor);
        linePaint.setStrokeWidth(mLineWidth);

    }

    @Override
    protected void onMeasure(int wi



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 订单流程view,订单view

相关文章

  • 2017-05-26Android 面试题总结(二)
  • 2017-05-26认识Activity,创建第一个android应用,activityandroid
  • 2017-05-26linux文件系统的规模与瓶颈
  • 2017-05-26更简单更全的material design状态栏
  • 2017-05-224.4.2 ContentProvider再探——Document Provider
  • 2017-05-26Android中的普通对话框、单选对话框、多选对话框、带Icon的对话框、以及自定义Adapter和自定义View对话框详解
  • 2017-05-26LinearLayout嵌套,linearlayout
  • 2017-05-224.4.1 ContentProvider初探
  • 2017-05-26android shareSDK实现第三方分享,androidsharesdk
  • 2017-05-26添加页面切换动画, 避免冷启动

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • nginx 1.12 stream 日志设置
    • 利用散列连接从DB2通用数据库获得最佳性能
    • android studio我的习惯操作,androidstudio习惯
    • 硅谷社交12--群列表页面,硅谷社交12--列表
    • Android:支持多选的本地相册
    • Android.mk模板(持续更新中),android.mk更新中
    • [android] 与PHP的session进行交互demo,androidsession
    • Android中的属性动画(Property Animation)——Android开发艺术探索笔记
    • android studio开发控件布局
    • 基于PGPool的1主2从PostgreSQL流复制HA的搭建

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有