圆形进度条调用二维码(展示阶梯矩形图案)
来源:互联网 发布:linux daemon 作用 编辑:程序博客网 时间:2024/04/29 12:38
主布局
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:orientation="vertical" android:layout_height="match_parent" > <LinearLayout android:id="@+id/liner_title" android:layout_width="match_parent" android:layout_height="50dp" android:background="#D4DBED" android:orientation="horizontal"> <Button android:id="@+id/but01" android:layout_weight="1" android:layout_width="0dp" android:layout_height="match_parent" android:text="《"/> <TextView android:gravity="center" android:id="@+id/text_view" android:layout_weight="2" android:layout_width="0dp" android:layout_height="match_parent" android:text="那些花儿"/> <Button android:id="@+id/but002" android:layout_weight="1" android:layout_width="0dp" android:layout_height="match_parent" android:text="进入"/> </LinearLayout> <Button android:id="@+id/but03" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="扫描二维码" /> <shidongliang.bwei.com.zhoukaoonedemo.view.CustomProgess android:id="@+id/custom_path" android:layout_below="@+id/titleview_id" android:layout_width="match_parent" android:layout_height="match_parent" /></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" > <LinearLayout android:id="@+id/liner_title" android:layout_width="match_parent" android:layout_height="50dp" android:background="#D4DBED" android:orientation="horizontal"> <Button android:id="@+id/but01" android:layout_weight="1" android:layout_width="0dp" android:layout_height="match_parent" android:text="《"/> <TextView android:gravity="center" android:id="@+id/text_view" android:layout_weight="2" android:layout_width="0dp" android:layout_height="match_parent" android:text="那些花儿"/> <Button android:id="@+id/but02" android:layout_weight="1" android:layout_width="0dp" android:layout_height="match_parent" android:text="进入"/> </LinearLayout><shidongliang.bwei.com.zhoukaoonedemo.view.CustomViewGroup android:layout_width="match_parent" android:layout_height="match_parent" /></LinearLayout>主类mainActivity--------
package shidongliang.bwei.com.zhoukaoonedemo;import android.content.Intent;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Button;import shidongliang.bwei.com.zhoukaoonedemo.view.CustomProgess;public class MainActivity extends AppCompatActivity { private Button but01; private Button but002; private Button but03; private CustomProgess progres; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); but01 = (Button) findViewById(R.id.but01); but002 = (Button) findViewById(R.id.but002); but03 = (Button) findViewById(R.id.but03); progres = (CustomProgess) findViewById(R.id.custom_path); but002.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(MainActivity.this, OneActivity.class); startActivity(intent); } }); but03.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { progres.start(); } }); }}子oneActivity
package shidongliang.bwei.com.zhoukaoonedemo;import android.content.Intent;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Button;/** * 此类的作用: * * @author: forever * @date: 2017/11/4 9:54 */public class OneActivity extends AppCompatActivity { private Button but01; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.other_main); but01 = (Button) findViewById(R.id.but01); but01.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(OneActivity.this, MainActivity.class); startActivity(intent); } }); }}view 画圆继承类
package shidongliang.bwei.com.zhoukaoonedemo.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.xys.libzxing.zxing.activity.CaptureActivity;/** * Created by LYY on 2017/11/4. */public class CustomProgess extends View { private boolean running = true; private Paint paint; private int progress = 0 ; Context context ; public CustomProgess(Context context) { super(context); } public CustomProgess(Context context, AttributeSet attrs) { this(context, attrs,0); } public CustomProgess(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); this.context = context; //创建一个画笔 paint = new Paint(); // 抗锯齿 paint.setAntiAlias(true); //设置画笔的颜色 paint.setColor(Color.GREEN); //设置画笔 填充是空心的 paint.setStyle(Paint.Style.STROKE); } public void start(){ new Thread(new Runnable() { @Override public void run() { while (running){ if (progress >= 360) { running = false; Intent intent = new Intent(context, CaptureActivity.class); context.startActivity(intent); return; } progress += 10 ; //子线程刷新 系统调用onDraw() 方法 postInvalidate(); try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } } } }).start(); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); // getWidth() 获取当前View 的宽度 int x = getWidth() / 2 ; int y = getHeight() / 2 ; int radius = 100 ; //设置画笔的粗细 paint.setStrokeWidth(10); //定义一个区域 RectF rectF = new RectF(x-radius,y-radius,x+radius,y+radius); //画弧 canvas.drawArc(rectF,-90,progress,false,paint); int text = (int) ((float)progress / 360 * 100 ); float textWidth = paint.measureText(text+"%"); Rect rextText = new Rect(); paint.getTextBounds(text+"%",0,(text+"%").length(),rextText); paint.setTextSize(30); paint.setStrokeWidth(1); //画文字 canvas.drawText(text+"%",x-textWidth/2,y+rextText.height()/2,paint); }}view画矩形类
package shidongliang.bwei.com.zhoukaoonedemo.view;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Rect;import android.util.AttributeSet;import android.view.View;/** * 此类的作用: * * @author: forever * @date: 2017/11/4 13:42 */public class CustomViewGroup extends View { public CustomViewGroup(Context context) { super(context); } public CustomViewGroup(Context context, AttributeSet attrs) { super(context, attrs); } public CustomViewGroup(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); Paint paint = new Paint(); paint.setTextSize(10); paint.setColor(Color.BLACK); Rect rect = new Rect(0,0,150,80); canvas.drawRect(rect,paint); Paint pain = new Paint(); pain.setTextSize(10); pain.setColor(Color.RED); Rect rect1 = new Rect(150,150,300,150); canvas.drawRect(rect1,pain); Paint pain3 = new Paint(); pain3.setTextSize(10); pain3.setColor(Color.BLUE); Rect rect2 = new Rect(150,150,300,160); canvas.drawRect(rect2,pain3); canvas.drawRect(150,80,300,160,paint); canvas.drawRect(300,160,450,250,pain); canvas.drawRect(150,80,300,160,pain3); }}
阅读全文
0 0
- 圆形进度条调用二维码(展示阶梯矩形图案)
- 自定义view圆形进度条,矩形与二维码
- 组合View-标题栏自绘控件圆形进度条/扫描二维码/自定义ViewGroup阶梯布局
- 圆形进度条+二维码扫描+自定义组合控件标题栏+自定义矩形view+接口回调方法
- 最屌最简单的圆形跟矩形进度条
- 扩展性极强的圆形进度条和矩形进度条
- 输出图案(六)---输出空心矩形
- 简单的进度条,圆形进度条(一)
- 自定义进度条(水平,圆形)
- 自定义圆形进度条(一)
- 自定义圆形进度条(二)
- 圆形 矩形
- 自定义进度条(水平进度条和圆形进度条)
- 圆形进度条
- 圆形进度条
- 圆形进度条
- 圆形进度条
- 圆形进度条
- 【spark 大数据处理技术】
- [Vue warn]: Do not use built-in or reserved HTML elements as component id:
- java基础2(初学者)
- 二叉树实现
- bzoj2004 Bus公交路线
- 圆形进度条调用二维码(展示阶梯矩形图案)
- 习题2-4 子序列的和(subsequence)
- hiho 1620 股票价格3 [Offer收割]编程练习赛34 Problem B 单调栈
- 吃巧克力
- Eclipse+ADT+Android SDK 搭建安卓开发环境
- 手写简单的springmvc框架
- 排序1
- [Redis学习笔记]-Redis配置
- ROS 移植到各种平台教程