当前位置: 首页 > news >正文

建设视频网站设计意义wordpress首页文章数量

建设视频网站设计意义,wordpress首页文章数量,近期网络舆情热点事件,线上推广公司文章的目的为了记录使用java 进行android app 开发学习的经历。本职为嵌入式软件开发#xff0c;公司安排开发app#xff0c;临时学习#xff0c;完成app的开发。开发流程和要点有些记忆模糊#xff0c;赶紧记录#xff0c;防止忘记。 相关链接#xff1a; 开源 java an… 文章的目的为了记录使用java 进行android app 开发学习的经历。本职为嵌入式软件开发公司安排开发app临时学习完成app的开发。开发流程和要点有些记忆模糊赶紧记录防止忘记。 相关链接 开源 java android app 开发一开发环境的搭建-CSDN博客 开源 java android app 开发二工程文件结构-CSDN博客 开源 java android app 开发三GUI界面布局和常用组件-CSDN博客 开源 java android app 开发四GUI界面重要组件-CSDN博客 开源 java android app 开发五文件和数据库存储-CSDN博客 开源 java android app 开发六多媒体使用-CSDN博客 开源 java android app 开发七通讯之Tcp和Http-CSDN博客 开源 java android app 开发八通讯之Mqtt和Ble-CSDN博客 开源 java android app 开发九后台之线程和服务-CSDN博客 开源 java android app 开发十广播机制-CSDN博客 开源 java android app 开发十一调试、发布-CSDN博客 开源 java android app 开发十二封库.aar-CSDN博客 开源 java android app 开发十三自定义绘图控件--游戏摇杆 开源 java android app 开发十四自定义绘图控件--波形图 开源 java android app 开发十五自定义绘图控件--仪表盘 开源 java android app 开发十六自定义绘图控件--圆环 推荐链接 开源C# .net mvc 开发一WEB搭建_c#部署web程序-CSDN博客 开源 C# .net mvc 开发二网站快速搭建_c#网站开发-CSDN博客 开源 C# .net mvc 开发三WEB内外网访问(VS发布、IIS配置网站、花生壳外网穿刺访问)_c# mvc 域名下不可訪問內網,內網下可以訪問域名-CSDN博客 开源 C# .net mvc 开发四工程结构、页面提交以及显示_c#工程结构-CSDN博客 开源 C# .net mvc 开发五常用代码快速开发_c# mvc开发-CSDN博客 本章节主要内容是:自定义的圆环控件的使用随机指向速度。 1.代码分析 2.所有源码 3.效果演示 一、代码分析 DataBoard 自定义视图详细分析 1. 类结构和成员变量 1.1 默认常量定义 private static final int DEFAULT_OUTER_DIAMETER 200; // dp private static final int DEFAULT_RING_WIDTH 20; // dp // ... 其他默认值 定义了所有可配置参数的默认值 尺寸单位使用dp颜色使用Android系统常量 1.2 绘制相关对象 private Paint mRingPaint;    // 圆环画笔 private Paint mTextPaint;    // 文字画笔 private RectF mRingRect;     // 圆环绘制区域 private Rect mTextBounds;    // 文字边界测量 1.3 自定义属性变量 private float mOuterDiameter;    // 外径 private float mRingWidth;        // 圆环宽度 private int mRingBaseColor;      // 基础圆环颜色 // ... 其他属性 2. 构造函数和初始化 2.1 构造函数链 java public DataBoard(Context context) {     this(context, null); } public DataBoard(Context context, Nullable AttributeSet attrs) {     this(context, attrs, 0); } public DataBoard(Context context, Nullable AttributeSet attrs, int defStyleAttr) {     super(context, attrs, defStyleAttr);     init(context, attrs); } 遵循Android自定义View的标准构造函数模式 最终都调用init()方法进行统一初始化 2.2 init() 方法 private void init(Context context, AttributeSet attrs) {     // 密度转换     float density getResources().getDisplayMetrics().density;     mOuterDiameter DEFAULT_OUTER_DIAMETER * density;     mRingWidth DEFAULT_RING_WIDTH * density;     // ... 其他默认值设置          // 自定义属性处理     if (attrs ! null) {         TypedArray ta context.obtainStyledAttributes(attrs, R.styleable.DataBoard);         mOuterDiameter ta.getDimension(R.styleable.DataBoard_db_outerDiameter, mOuterDiameter);         // ... 逐个获取属性值         ta.recycle();  // 重要必须回收TypedArray     }          // 画笔初始化     mRingPaint new Paint(Paint.ANTI_ALIAS_FLAG);     mRingPaint.setStyle(Paint.Style.STROKE);     mRingPaint.setStrokeWidth(mRingWidth);     mRingPaint.setStrokeCap(Paint.Cap.ROUND);  // 圆角端点          mTextPaint new Paint(Paint.ANTI_ALIAS_FLAG);     mTextPaint.setColor(mTextColor);     mTextPaint.setTextSize(mTextSize);     mTextPaint.setTextAlign(Paint.Align.CENTER);  // 文字水平居中          // 矩形区域初始化     mRingRect new RectF();     mTextBounds new Rect();          setBackgroundColor(Color.WHITE); } 3. 视图测量和布局 3.1 onMeasure() 方法 Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {     // 计算期望尺寸包含padding     int desiredWidth (int) mOuterDiameter getPaddingLeft() getPaddingRight();     int desiredHeight (int) mOuterDiameter getPaddingTop() getPaddingBottom();          // 获取测量模式和尺寸     int widthMode MeasureSpec.getMode(widthMeasureSpec);     int widthSize MeasureSpec.getSize(widthMeasureSpec);     int heightMode MeasureSpec.getMode(heightMeasureSpec);     int heightSize MeasureSpec.getSize(heightMeasureSpec);          int width, height;          // 宽度测量逻辑     if (widthMode MeasureSpec.EXACTLY) {         width widthSize;  // 父视图指定确切尺寸     } else if (widthMode MeasureSpec.AT_MOST) {         width Math.min(desiredWidth, widthSize);  // 不能超过父视图限制     } else {         width desiredWidth;  // 未指定限制使用期望尺寸     }          // 高度测量逻辑同上     if (heightMode MeasureSpec.EXACTLY) {         height heightSize;     } else if (heightMode MeasureSpec.AT_MOST) {         height Math.min(desiredHeight, heightSize);     } else {         height desiredHeight;     }          setMeasuredDimension(width, height); } 3.2 onSizeChanged() 方法 java Override protected void onSizeChanged(int w, int h, int oldw, int oldh) {     super.onSizeChanged(w, h, oldw, oldh);          // 计算中心点坐标     mCenterX w / 2f;     mCenterY h / 2f;          // 计算可用空间考虑padding     float availableWidth w - getPaddingLeft() - getPaddingRight();     float availableHeight h - getPaddingTop() - getPaddingBottom();          // 计算半径缩小10%并考虑圆环宽度     float sizeReduction 0.1f;     float reducedSize Math.min(availableWidth, availableHeight) * (1 - sizeReduction);     mRadius reducedSize / 2f - mRingWidth / 2f;  // 减去圆环宽度的一半          // 设置圆环绘制区域     float left mCenterX - mRadius;     float top mCenterY - mRadius;     float right mCenterX mRadius;     float bottom mCenterY mRadius;     mRingRect.set(left, top, right, bottom); } 4. 绘制方法详解 4.1 onDraw() 主绘制方法 Override protected void onDraw(Canvas canvas) {     super.onDraw(canvas);          drawRingEdges(canvas);    // 1. 绘制渐变边缘     drawBaseRing(canvas);     // 2. 绘制基础圆环     drawDataRing(canvas);     // 3. 绘制数据圆环     drawCenterText(canvas);   // 4. 绘制中心文字 } 4.2 drawRingEdges() - 渐变边缘绘制 java private void drawRingEdges(Canvas canvas) {     Paint edgePaint new Paint(Paint.ANTI_ALIAS_FLAG);     edgePaint.setStyle(Paint.Style.STROKE);          // 外圈渐变深灰到黑     Shader outerShader new RadialGradient(             mCenterX, mCenterY, mRadius mRingWidth / 2,  // 外圈半径             mOuterStartColor, mOuterEndColor, Shader.TileMode.CLAMP);     edgePaint.setShader(outerShader);     edgePaint.setStrokeWidth(2);  // 边缘线宽     canvas.drawCircle(mCenterX, mCenterY, mRadius mRingWidth / 2, edgePaint);          // 内圈渐变白到浅灰     Shader innerShader new RadialGradient(             mCenterX, mCenterY, mRadius - mRingWidth / 2,  // 内圈半径             mInnerStartColor, mInnerEndColor, Shader.TileMode.CLAMP);     edgePaint.setShader(innerShader);     canvas.drawCircle(mCenterX, mCenterY, mRadius - mRingWidth / 2, edgePaint); } 4.3 drawBaseRing() - 基础圆环绘制 java private void drawBaseRing(Canvas canvas) {     mRingPaint.setColor(mRingBaseColor);     canvas.drawArc(mRingRect, 0, 360, false, mRingPaint);  // 绘制完整圆环 } 4.4 drawDataRing() - 数据圆环绘制 java private void drawDataRing(Canvas canvas) {     if (mCurrentValue 0) return;  // 无数据时不绘制          // 计算扫描角度基于当前值与最大值的比例     float sweepAngle (mCurrentValue / mMaxValue) * 360;     sweepAngle Math.min(sweepAngle, 360);  // 限制最大360度          mRingPaint.setColor(mRingDataColor);     // 从270度开始12点方向顺时针绘制     canvas.drawArc(mRingRect, 270, sweepAngle, false, mRingPaint);          // 注释掉的半量程颜色变化逻辑     /*     if (mCurrentValue mMaxValue / 2) {         // 半量程内使用数据颜色         mRingPaint.setColor(mRingDataColor);         canvas.drawArc(mRingRect, 270, sweepAngle, false, mRingPaint);     } else {         // 超过半量程后半部分使用基础颜色         float firstHalfAngle 180;         float secondHalfAngle sweepAngle - firstHalfAngle;                  mRingPaint.setColor(mRingDataColor);         canvas.drawArc(mRingRect, 270, firstHalfAngle, false, mRingPaint);                  mRingPaint.setColor(mRingBaseColor);         canvas.drawArc(mRingRect, 270 firstHalfAngle, secondHalfAngle, false, mRingPaint);     }     */ } 4.5 drawCenterText() - 中心文字绘制 private void drawCenterText(Canvas canvas) {     // 格式化文本当前值/最大值     String text String.format(%.1f/% .1f, mCurrentValue, mMaxValue);          // 获取文字边界用于垂直居中计算     mTextPaint.getTextBounds(text, 0, text.length(), mTextBounds);          // 计算垂直居中位置     float textY mCenterY - (mTextBounds.top mTextBounds.bottom) / 2f;          canvas.drawText(text, mCenterX, textY, mTextPaint); } 5. 公共方法属性设置 5.1 数值设置方法 public void setCurrentValue(float value) {     mCurrentValue Math.max(0, Math.min(value, mMaxValue));  // 边界检查     invalidate();  // 请求重绘 } public void setMaxValue(float maxValue) {     mMaxValue Math.max(0, maxValue);     if (mCurrentValue mMaxValue) {         mCurrentValue mMaxValue;  // 调整当前值不超过新最大值     }     invalidate(); } 5.2 样式设置方法 java public void setRingWidth(float width) {     mRingWidth width;     mRingPaint.setStrokeWidth(mRingWidth);     requestLayout();  // 需要重新布局尺寸可能改变     invalidate();     // 需要重绘 } public void setOuterDiameter(float diameter) {     mOuterDiameter diameter;     requestLayout();  // 尺寸改变需要重新测量布局     invalidate(); }   二、所有源码 需要修改的文件有5个 1.  DataBoard.java代码 package com.example.dashboard;import android.content.Context; import android.content.res.TypedArray; import android.graphics.*; import android.util.AttributeSet; import android.view.View; import androidx.annotation.Nullable;public class DataBoard extends View {// 默认值private static final int DEFAULT_OUTER_DIAMETER 200; // dpprivate static final int DEFAULT_RING_WIDTH 20; // dpprivate static final int DEFAULT_BASE_COLOR Color.LTGRAY;private static final int DEFAULT_DATA_COLOR Color.BLUE;private static final int DEFAULT_TEXT_COLOR Color.BLACK;private static final int DEFAULT_TEXT_SIZE 16; // spprivate static final float DEFAULT_MAX_VALUE 100f;private static final float DEFAULT_CURRENT_VALUE 0f;// 绘制相关private Paint mRingPaint;private Paint mTextPaint;private RectF mRingRect;private Rect mTextBounds;// 自定义属性private float mOuterDiameter;private float mRingWidth;private int mRingBaseColor;private int mRingDataColor;private int mTextColor;private float mTextSize;private float mMaxValue;private float mCurrentValue;private int mInnerStartColor;private int mInnerEndColor;private int mOuterStartColor;private int mOuterEndColor;// 计算属性private float mCenterX;private float mCenterY;private float mRadius;public DataBoard(Context context) {this(context, null);}public DataBoard(Context context, Nullable AttributeSet attrs) {this(context, attrs, 0);}public DataBoard(Context context, Nullable AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);init(context, attrs);}private void init(Context context, AttributeSet attrs) {// 初始化默认值float density getResources().getDisplayMetrics().density;mOuterDiameter DEFAULT_OUTER_DIAMETER * density;mRingWidth DEFAULT_RING_WIDTH * density;mRingBaseColor DEFAULT_BASE_COLOR;mRingDataColor DEFAULT_DATA_COLOR;mTextColor DEFAULT_TEXT_COLOR;mTextSize DEFAULT_TEXT_SIZE * density;mMaxValue DEFAULT_MAX_VALUE;mCurrentValue DEFAULT_CURRENT_VALUE;mInnerStartColor Color.WHITE;mInnerEndColor Color.LTGRAY;mOuterStartColor Color.DKGRAY;mOuterEndColor Color.BLACK;// 获取自定义属性if (attrs ! null) {TypedArray ta context.obtainStyledAttributes(attrs, R.styleable.DataBoard);mOuterDiameter ta.getDimension(R.styleable.DataBoard_db_outerDiameter, mOuterDiameter);mRingWidth ta.getDimension(R.styleable.DataBoard_db_ringWidth, mRingWidth);mRingBaseColor ta.getColor(R.styleable.DataBoard_db_ringBaseColor, mRingBaseColor);mRingDataColor ta.getColor(R.styleable.DataBoard_db_ringDataColor, mRingDataColor);mTextColor ta.getColor(R.styleable.DataBoard_db_textColor, mTextColor);mTextSize ta.getDimension(R.styleable.DataBoard_db_textSize, mTextSize);mMaxValue ta.getFloat(R.styleable.DataBoard_db_maxValue, mMaxValue);mCurrentValue ta.getFloat(R.styleable.DataBoard_db_currentValue, mCurrentValue);mInnerStartColor ta.getColor(R.styleable.DataBoard_db_innerStartColor, mInnerStartColor);mInnerEndColor ta.getColor(R.styleable.DataBoard_db_innerEndColor, mInnerEndColor);mOuterStartColor ta.getColor(R.styleable.DataBoard_db_outerStartColor, mOuterStartColor);mOuterEndColor ta.getColor(R.styleable.DataBoard_db_outerEndColor, mOuterEndColor);ta.recycle();}// 初始化圆环画笔mRingPaint new Paint(Paint.ANTI_ALIAS_FLAG);mRingPaint.setStyle(Paint.Style.STROKE);mRingPaint.setStrokeWidth(mRingWidth);mRingPaint.setStrokeCap(Paint.Cap.ROUND);// 初始化文字画笔mTextPaint new Paint(Paint.ANTI_ALIAS_FLAG);mTextPaint.setColor(mTextColor);mTextPaint.setTextSize(mTextSize);mTextPaint.setTextAlign(Paint.Align.CENTER);mRingRect new RectF();mTextBounds new Rect();// 设置白色背景setBackgroundColor(Color.WHITE);}Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {int desiredWidth (int) mOuterDiameter getPaddingLeft() getPaddingRight();int desiredHeight (int) mOuterDiameter getPaddingTop() getPaddingBottom();int widthMode MeasureSpec.getMode(widthMeasureSpec);int widthSize MeasureSpec.getSize(widthMeasureSpec);int heightMode MeasureSpec.getMode(heightMeasureSpec);int heightSize MeasureSpec.getSize(heightMeasureSpec);int width, height;if (widthMode MeasureSpec.EXACTLY) {width widthSize;} else if (widthMode MeasureSpec.AT_MOST) {width Math.min(desiredWidth, widthSize);} else {width desiredWidth;}if (heightMode MeasureSpec.EXACTLY) {height heightSize;} else if (heightMode MeasureSpec.AT_MOST) {height Math.min(desiredHeight, heightSize);} else {height desiredHeight;}setMeasuredDimension(width, height);} /*Overrideprotected void onSizeChanged(int w, int h, int oldw, int oldh) {super.onSizeChanged(w, h, oldw, oldh);// 计算中心点mCenterX w / 2f;mCenterY h / 2f;// 计算半径考虑paddingfloat availableWidth w - getPaddingLeft() - getPaddingRight();float availableHeight h - getPaddingTop() - getPaddingBottom();mRadius Math.min(availableWidth, availableHeight) / 2f - mRingWidth / 2f;// 设置圆环绘制区域float left mCenterX - mRadius;float top mCenterY - mRadius;float right mCenterX mRadius;float bottom mCenterY mRadius;mRingRect.set(left, top, right, bottom);} */Overrideprotected void onSizeChanged(int w, int h, int oldw, int oldh) {super.onSizeChanged(w, h, oldw, oldh);// 计算中心点mCenterX w / 2f;mCenterY h / 2f;// 计算半径考虑padding和额外的边距float availableWidth w - getPaddingLeft() - getPaddingRight();float availableHeight h - getPaddingTop() - getPaddingBottom();// 设置圆环比可用空间小一些例如小10%float sizeReduction 0.1f; // 缩小10%float reducedSize Math.min(availableWidth, availableHeight) * (1 - sizeReduction);mRadius reducedSize / 2f - mRingWidth / 2f;// 或者固定缩小一定的像素值// float fixedMargin 20f; // 缩小20像素// float baseSize Math.min(availableWidth, availableHeight);// mRadius (baseSize - fixedMargin * 2) / 2f - mRingWidth / 2f;// 设置圆环绘制区域float left mCenterX - mRadius;float top mCenterY - mRadius;float right mCenterX mRadius;float bottom mCenterY mRadius;mRingRect.set(left, top, right, bottom);}Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);// 绘制内外径边的渐变效果drawRingEdges(canvas);// 绘制基础圆环drawBaseRing(canvas);// 绘制数据圆环drawDataRing(canvas);// 绘制中心文字drawCenterText(canvas);}private void drawRingEdges(Canvas canvas) {// 绘制外径边的渐变Paint edgePaint new Paint(Paint.ANTI_ALIAS_FLAG);edgePaint.setStyle(Paint.Style.STROKE);// 外圈渐变Shader outerShader new RadialGradient(mCenterX, mCenterY, mRadius mRingWidth / 2,mOuterStartColor, mOuterEndColor, Shader.TileMode.CLAMP);edgePaint.setShader(outerShader);edgePaint.setStrokeWidth(2);canvas.drawCircle(mCenterX, mCenterY, mRadius mRingWidth / 2, edgePaint);// 内圈渐变Shader innerShader new RadialGradient(mCenterX, mCenterY, mRadius - mRingWidth / 2,mInnerStartColor, mInnerEndColor, Shader.TileMode.CLAMP);edgePaint.setShader(innerShader);canvas.drawCircle(mCenterX, mCenterY, mRadius - mRingWidth / 2, edgePaint);}private void drawBaseRing(Canvas canvas) {mRingPaint.setColor(mRingBaseColor);// 绘制完整的圆环作为背景canvas.drawArc(mRingRect, 0, 360, false, mRingPaint);}private void drawDataRing(Canvas canvas) {if (mCurrentValue 0) return;// 计算数据对应的角度270°开始顺时针float sweepAngle (mCurrentValue / mMaxValue) * 360;sweepAngle Math.min(sweepAngle, 360); // 不超过360度/*// 判断是否超过半量程if (mCurrentValue mMaxValue / 2) {// 半量程以内全部使用数据颜色mRingPaint.setColor(mRingDataColor);canvas.drawArc(mRingRect, 270, sweepAngle, false, mRingPaint);} else {// 超过半量程前半部分数据颜色后半部分基本颜色float firstHalfAngle 180; // 前半部分180度float secondHalfAngle sweepAngle - firstHalfAngle;// 绘制前半部分数据颜色mRingPaint.setColor(mRingDataColor);canvas.drawArc(mRingRect, 270, firstHalfAngle, false, mRingPaint);// 绘制后半部分基本颜色mRingPaint.setColor(mRingBaseColor);canvas.drawArc(mRingRect, 270 firstHalfAngle, secondHalfAngle, false, mRingPaint);}*/mRingPaint.setColor(mRingDataColor);canvas.drawArc(mRingRect, 270, sweepAngle, false, mRingPaint);}private void drawCenterText(Canvas canvas) {String text String.format(%.1f/% .1f, mCurrentValue, mMaxValue);mTextPaint.getTextBounds(text, 0, text.length(), mTextBounds);// 计算文字垂直居中位置float textY mCenterY - (mTextBounds.top mTextBounds.bottom) / 2f;canvas.drawText(text, mCenterX, textY, mTextPaint);}// 公共方法 - 设置当前值public void setCurrentValue(float value) {mCurrentValue Math.max(0, Math.min(value, mMaxValue));invalidate();}// 公共方法 - 设置最大值public void setMaxValue(float maxValue) {mMaxValue Math.max(0, maxValue);if (mCurrentValue mMaxValue) {mCurrentValue mMaxValue;}invalidate();}// 公共方法 - 设置圆环宽度public void setRingWidth(float width) {mRingWidth width;mRingPaint.setStrokeWidth(mRingWidth);requestLayout();invalidate();}// 公共方法 - 设置圆环基本颜色public void setRingBaseColor(int color) {mRingBaseColor color;invalidate();}// 公共方法 - 设置圆环数据颜色public void setRingDataColor(int color) {mRingDataColor color;invalidate();}// 公共方法 - 设置文字颜色public void setTextColor(int color) {mTextColor color;mTextPaint.setColor(mTextColor);invalidate();}// 公共方法 - 设置外圈直径public void setOuterDiameter(float diameter) {mOuterDiameter diameter;requestLayout();invalidate();}// 获取当前值public float getCurrentValue() {return mCurrentValue;}// 获取最大值public float getMaxValue() {return mMaxValue;} } 2.  mainactivity.java代码 package com.example.dashboard;import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.view.ViewGroup; import android.view.ViewParent; import android.widget.Button; import android.widget.SeekBar;import androidx.appcompat.app.AppCompatActivity;public class MainActivity extends AppCompatActivity {private DataBoard dataBoard;private Button btnIncrease, btnDecrease;private SeekBar seekBar;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initViews();setupListeners();}private void initViews() {dataBoard findViewById(R.id.dataBoard);btnIncrease findViewById(R.id.btnIncrease);btnDecrease findViewById(R.id.btnDecrease);seekBar findViewById(R.id.seekBar);// 设置SeekBar初始值seekBar.setProgress((int) dataBoard.getCurrentValue());}private void setupListeners() {btnIncrease.setOnClickListener(v - {float current dataBoard.getCurrentValue();if (current dataBoard.getMaxValue()) {dataBoard.setCurrentValue(current 10);seekBar.setProgress((int) dataBoard.getCurrentValue());}});btnDecrease.setOnClickListener(v - {float current dataBoard.getCurrentValue();if (current 0) {dataBoard.setCurrentValue(current - 10);seekBar.setProgress((int) dataBoard.getCurrentValue());}});seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {Overridepublic void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {if (fromUser) {dataBoard.setCurrentValue(progress);}}Overridepublic void onStartTrackingTouch(SeekBar seekBar) {}Overridepublic void onStopTrackingTouch(SeekBar seekBar) {}});}} 3.  acivitiy_main.xml代码 ?xml version1.0 encodingutf-8? LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoxmlns:toolshttp://schemas.android.com/toolsandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:orientationverticalandroid:padding16dpandroid:background#FFFFFFtools:context.MainActivitycom.example.dashboard.DataBoardandroid:idid/dataBoardandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_gravitycenterandroid:background#FFFFFFapp:db_outerDiameter180dpapp:db_ringWidth20dpapp:db_ringBaseColor#E0E0E0app:db_ringDataColor#2196F3app:db_textColor#333333app:db_textSize18spapp:db_maxValue100app:db_currentValue75app:db_innerStartColor#FFFFFFapp:db_innerEndColor#E0E0E0app:db_outerStartColor#BDBDBDapp:db_outerEndColor#616161 /LinearLayoutandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:orientationhorizontalandroid:layout_marginTop20dpButtonandroid:idid/btnIncreaseandroid:layout_width0dpandroid:layout_heightwrap_contentandroid:layout_weight1android:text增加/Buttonandroid:idid/btnDecreaseandroid:layout_width0dpandroid:layout_heightwrap_contentandroid:layout_weight1android:text减少//LinearLayoutSeekBarandroid:idid/seekBarandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:layout_marginTop20dpandroid:max100 //LinearLayout 4.  attrs.xml代码 ?xml version1.0 encodingutf-8? resourcesdeclare-styleable nameDataBoard!-- 圆环外圈直径 --attr namedb_outerDiameter formatdimension /!-- 圆环宽度 --attr namedb_ringWidth formatdimension /!-- 圆环基本颜色 --attr namedb_ringBaseColor formatcolor /!-- 圆环数据颜色 --attr namedb_ringDataColor formatcolor /!-- 中心文字颜色 --attr namedb_textColor formatcolor /!-- 中心文字大小 --attr namedb_textSize formatdimension /!-- 量程最大值 --attr namedb_maxValue formatfloat /!-- 当前值 --attr namedb_currentValue formatfloat /!-- 内圈渐变起始颜色 --attr namedb_innerStartColor formatcolor /!-- 内圈渐变结束颜色 --attr namedb_innerEndColor formatcolor /!-- 外圈渐变起始颜色 --attr namedb_outerStartColor formatcolor /!-- 外圈渐变结束颜色 --attr namedb_outerEndColor formatcolor //declare-styleable /resources 5.  colors.xml代码 ?xml version1.0 encodingutf-8? resourcescolor namecolorPrimary#008577/colorcolor namecolorPrimaryDark#00574B/colorcolor namecolorAccent#D81B60/colorcolor namepurple_200#FFBB86FC/colorcolor namepurple_500#FF6200EE/colorcolor namepurple_700#FF3700B3/colorcolor nameteal_200#FF03DAC5/colorcolor nameteal_700#FF018786/colorcolor nameblack#FF000000/colorcolor namewhite#FFFFFFFF/color!-- 仪表盘自定义颜色 --color namedialColor#3F51B5/colorcolor nameneedleColor#FF4081/colorcolor nametextColor#212121/colorcolor namebackgroundColor#FFFFFF/color/resources三、效果演示 主活动中添加了圆环控件使用按钮可以增加和减少圆环控件的显示。
http://www.pierceye.com/news/194840/

相关文章:

  • 用cms建网站容易吗平面设计网课平台哪个好
  • 网站设计怎么做好什么视频直播网站做挣钱
  • 西安 网站开发 招聘app开发难吗
  • 富阳网站建设 优帮云邯郸市商标设计品牌策划公司
  • 整站优化费用中国网新重庆
  • 找别人做网站wordpress怎么更改栏目权限
  • 珠海市建设工程质量监督检测站网站在小网站上做点击广告
  • 网站拉圈圈接口怎么做传媒网站设计
  • 淘宝客做的最好的网站盐山建网站
  • 西城企业网站建设深圳设计网站多少钱
  • 电子商务网站建设a卷网站建设厘金手指排名二一
  • 网站空间便宜网站的信息管理建设的必要性
  • 校级特色专业建设网站博达站群网站建设教程
  • 有没有做任务的网站吗网站首页开发
  • 公司名字变了网站备案济南网站建设公司哪个好点呢
  • 图书馆网站建设的规章制度企业免费招聘网站
  • 效果图网站大全系统优化的例子
  • 京东的网站建设介绍网站开发要源码多少钱
  • 东莞网站制作公司报价企业定制
  • 创同盟做网站生成拼贴的网站
  • 网站备案号查电话号码商场网站开发
  • 手机网站建站教育模板下载泰州公司注册
  • 如何做商业网站推广西安市城乡建设管理局网站的公示栏
  • 上海做兼职哪个网站腾讯企业邮箱域名是什么
  • 霸州网站制作棋牌网站建设源码
  • 茶叶网站制作模板网页设计在安阳工资多少
  • 网站建设项目验收方案自己做捕鱼网站能不能挣钱
  • 微信网页网站怎么做我为群众办实事实践活动
  • 建设银行发卡银行网站福州 网站设计
  • 网站备案号码舟山高端网站建设