gpt4 book ai didi

Android绘图矩形计时器带动画

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:54:52 25 4
gpt4 key购买 nike

我正在尝试绘制一个动画描边矩形:

Rounded Rectangle Stroke Animation

针对此问题的任何 kickstart 都会有所帮助。使用 View , Canvas 任何东西。

谢谢

最佳答案

好的,这是让您入门的东西,它不是完整的解决方案,但您可以从这里完成您的任务。

我正在做的是根据进度动态更新我的面具。我只是画了一条线,但在你的情况下,你需要画四条线,根据进度形成一个蒙版矩形。这是让我知道是否有帮助的代码:

public class DrawView extends View implements Runnable {

Bitmap mProgressBitmap;
Bitmap mMaskProgressBitmap;
Bitmap mResultBitmap;

Canvas mTempCanvas;
Canvas mMaskCanvas;

Paint mPaint;

Paint mWhitePaint;

Handler mHandler = new Handler();

float mProgress = 0;

static final long FRAME_TIME = 50;

public DrawView(Context context, AttributeSet attrs) {
super(context, attrs);

InputStream resource = getResources().openRawResource(R.drawable.timer);
mProgressBitmap = BitmapFactory.decodeStream(resource);

mMaskProgressBitmap = Bitmap.createBitmap(mProgressBitmap.getWidth(), mProgressBitmap.getHeight(), Bitmap.Config.ARGB_8888);
mMaskCanvas = new Canvas(mMaskProgressBitmap);
mMaskCanvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);

mResultBitmap = Bitmap.createBitmap(mProgressBitmap.getWidth(), mProgressBitmap.getHeight(), Bitmap.Config.ARGB_8888);

mTempCanvas = new Canvas(mResultBitmap);

mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
mPaint.setDither(true);

mWhitePaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mWhitePaint.setColor(Color.WHITE);
mWhitePaint.setStrokeWidth(50);

mHandler.postDelayed(this, FRAME_TIME);
}

@Override
public void onDraw(Canvas canvas) {

mTempCanvas.drawBitmap(mMaskProgressBitmap, 0, 0, null);
mTempCanvas.drawBitmap(mProgressBitmap, 0, 0, mPaint);

canvas.drawBitmap(mResultBitmap, 0, 0, null);
}

@Override
public void run() {

mProgress += 0.01f;

mMaskCanvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);
mMaskCanvas.drawLine(0, 0, (float)mProgressBitmap.getWidth() * mProgress, 0, mWhitePaint);

this.invalidate();

mHandler.postDelayed(this, FRAME_TIME);
}

}

关于Android绘图矩形计时器带动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16413418/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com