圆形进度条调用二维码(展示阶梯矩形图案)

来源:互联网 发布: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);    }}

原创粉丝点击