Android自定义控件继承View,进度条ProgressBar,<layer-list><shap>的使用

工作内容:

1.自定义控件继承自View

2.进度条ProgressBar,SeekBar的基础使用

3.<layer-list>,<shap>的使用

学习分享:

 1.自定义控件继承自View

I.java文件

public class MyView extends View {
    //cx坐标x,cy坐标y,cr半径
    private float cx = 30f,cy = 30f,cr = 30f;
    //最少需重写父类的以下2个构造方法
    public MyView(Context context) {
        super(context);
    }
    public MyView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
    //最少重写父类的onDraw方法
    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        Paint paint = new Paint();//画笔
        paint.setStyle(Paint.Style.STROKE);
        paint.setStrokeWidth(2);
        //画布上面绘画
        canvas.drawCircle(cx,cy,cr,paint);
	//【演示结果:1条圆环】
    }
}
II.在布局文件中引入(包名+类名)
<azsecuer.androidy.com.mobelmanager.activity.MyView
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

2.ProgressBar,SeekBar的常规使用

I.在布局文件中放入<ProgressBar>组件,并设置属性
 style="@style/Widget.AppCompat.ProgressBar.Horizontal"   //横向进度条
android:max="100"		//进度条的最大值
android:progress="20"		//当前进度
II.在Java文件中可以通过在子线程中通过handler发送信息来提示进度条增加
常用到方法(setProgress(int progress),setMax(
int progress))
III.SeekBar与progress类似,但不需要设置Style属性,默认是水平(同于音乐播放器中的播放事件进度条)
IV.给SeekBar添加事件SeekBar.OnSeekBarChangeListener,在其重写的方法中的stopTrackingTouch(SeekBar seekBar)的方法块中
写入处理代码(如:获取用户点击之后,的SeekBar的progress属性)
3.设置Progress的样式
<layer-list>,<shap>的使用【注意尝试:<item android:id="@android:id/属性">去尝试填入各种属性】
以下代码在drawable → 右键选择new → "Drawable resource file",命名为“progress_fill”
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/background">	//item--表示是要设置的属性
        <shape>
            <corners android:radius="15dp"/>
            <solid android:color="@color/progress_bg_orange"/>
        </shape>
    </item>
    <item android:id="@android:id/progress">
        <clip>		//clip--表示剪切
            <shape>		//表示形状
                <corners android:radius="15dp"/>	//表示圆角的半径
                <solid android:color="#00ff0f"/>	//表示填充颜色
		//<stroke width = "2dp" color="#F00"> 	//表示边框宽度2,颜色为红色
            </shape>
        </clip>
    </item>
</layer-list>
实例使用:
在ProgressBar中
style = "@style/Widget.AppCompat.ProgressBar.Horizontal"不变
添加属性 android:progressDrawable="@drawable/progress_fill"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值