package com.example.progressbar;
import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import androidx.annotation.Nullable;
public class ProgressBarnew extends View {
private int sizeskbar=100;
public ProgressBarnew(Context context) {
super(context);
}
public ProgressBarnew(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
public ProgressBarnew(Context context, @Nullable AttributeSet attrs, int defStyleAttr){
super(context,attrs,defStyleAttr);
}
@Override
protected void onDraw(Canvas canvas) {
Paint p =new Paint(Paint.LINEAR_TEXT_FLAG);
p.setColor(Color.RED);
p.setTextSize(36.f);
//canvas.drawText("omar",0,100,0,0,p);
//p.setFontFeatureSettings();
// Bitmap bitmap=Bitmap.createBitmap(100,100,Bitmap.Config.ARGB_8888);
int wright=1000;//يمين
int left=10;//شمال
int up=100;//فوق
int down=200;//تحت
canvas.drawText("10%",left,up,p);
canvas.drawLine(left, up, wright, up, p);
canvas.drawLine(left, down, wright, down, p);
canvas.drawLine(left, up, left, down, p);
canvas.drawLine(wright, up, wright, down, p);
int xn=1;
for(int i=left;i<wright;i++){
xn++;
if(xn>sizeskbar) {
p.setColor(Color.RED);
canvas.drawLine(i, up, i, down, p);
} else {
p.setColor(Color.BLUE);
canvas.drawLine(i,up,i,down, p);
}
}
// canvas.drawPoint(i, iy, p);
//canvas.drawLine(0,0,500,10,p);
super.onDraw(canvas);
}
@SuppressLint("ClickableViewAccessibility")
@Override
public boolean onTouchEvent(MotionEvent ev) {
int time=1;
//scrollBy((int) ev.getX(), (int) ev.getY());
this.getParent().requestDisallowInterceptTouchEvent(true);
switch (ev.getAction()) {
case MotionEvent.ACTION_DOWN:
setPressed(true);
break;
case MotionEvent.ACTION_MOVE:
setPressed(true);
Log.d("tieme=","t"+ev.getEventTime());
Log.d("on=","t"+ev.getDownTime());
sizeskbar++;
if(ev.getEventTime()>ev.getDownTime()+500) {
if (ev.getX() > (getWidth() / 2)) {
scrollTo(getScrollX() + 50, getScrollY());
} else {
scrollTo(getScrollX() - 50, getScrollY());
}
}
//scrollTo((int) ev.getX(), getScrollY());
break;
case MotionEvent.ACTION_UP:
invalidate();
this.getParent().requestDisallowInterceptTouchEvent(false);
setPressed(false);
break;
case MotionEvent.ACTION_CANCEL:
this.getParent().requestDisallowInterceptTouchEvent(false);
setPressed(false);
break;
}
return true;
}
}
No comments:
Post a Comment