- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想按进度绘制像这张图片一样的自定义drawrect:
但是,我的问题是将左上角的起点更改为中上角,到目前为止,这是我的自定义 View :
public class RoundProgress extends View {
Path path = new Path();
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
float length;
float[] intervals = {0, 0};
public RoundProgress(Context context) {
super(context);
paint.setColor(Color.BLUE);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(100);
}
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
path.reset();
RectF rect = new RectF(0, 0, w, h);
float inset = paint.getStrokeWidth();
rect.inset(inset, inset);
path.addRoundRect(rect, 100, 100, Path.Direction.CCW);
length = new PathMeasure(path, false).getLength();
intervals[0] = intervals[1] = length;
PathEffect effect = new DashPathEffect(intervals, length);
paint.setPathEffect(effect);
}
public void setProgress(int progress) {
PathEffect effect = new DashPathEffect(intervals, length - length * progress / 100);
paint.setPathEffect(effect);
invalidate();
}
@Override
protected void onDraw(Canvas canvas) {
canvas.drawPath(path, paint);
}
最佳答案
对于所有不喜欢猜测的人来说,没有办法改变用 addRoundedRect
创建的圆角矩形的起点。
改为使用自定义路径绘制它:
fun createRoundedRectWithCustomStartPoint(viewWidth: Float, viewHeight: Float) {
val radius = 20f
val strokeWidthHalf = paint.strokeWidth/2
val top = strokeWidthHalf
val start = strokeWidthHalf
path.apply {
moveTo(viewWidth/2, top)
lineTo(viewWidth - radius, top)
arcTo(viewWidth - 2 * radius, top, viewWidth, 2 * radius, -90F, 90F, false)
lineTo(viewWidth, radius)
arcTo(viewWidth - 2 * radius, viewHeight - 2 * radius, viewWidth, viewHeight, 0F, 90F, false)
lineTo(radius, viewHeight)
arcTo(start, viewHeight - 2 * radius, 2 * radius, viewHeight, 90F, 90F, false)
lineTo(start, radius)
arcTo(start, top, 2 * radius, 2 * radius, 180F, 90F, false)
lineTo(viewWidth/2, top)
}
}
override fun onSizeChanged(w: Int, h: Int, oldw: Int, oldh: Int) {
path.reset()
createRoundedRectWithCustomStartPoint(viewWidth = w.toFloat()-paint.strokeWidth/2,viewHeight = h.toFloat()-paint.strokeWidth/2)
length = PathMeasure(path, false).length
intervals[1] = length
intervals[0] = intervals[1]
val effect: PathEffect = DashPathEffect(intervals, length)
paint.pathEffect = effect
}
关于android - 如何更改起点drawrect customview android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39556867/
我目前正在制作一款游戏,该游戏扩展了此处的教程: http://www.edu4java.com/en/androidgame/androidgame.html 我目前的屏幕布局如下所示: http:
我创建了一个自定义的SurfaceView,我试图找到一个解决方案,以匹配我的surfaceview尺寸到android屏幕尺寸(动态)。GameSurface:。MainActivity:。我确实试
目前我开始为一个项目提供支持,在那里我发现了一个非常有趣的技巧。它提供了一个机会,不要在 xml 中为 CustomView 编写完整的类名,我认为它看起来很脏。 以下是这个技巧的实现步骤: 1) 在
我正在制作 UI 循环并希望支持 CustomView.swift 已添加到我的 xcode 中。 这是 Xcode 中最新的 swift import UIKit class CustomView:
我想创建一个显示图像的 CustomView。单击 View 应更改其状态。 View 可以表示三种状态(off, set, notset)。我想用 XML 格式的 选择器 来做到这一点。它不一定是自
我创建了一个 CustomView,并将其添加到 XML 布局中。这是一个非常简单的布局,应该不会出现任何问题。不过,令我恼火的是,某些元素似乎被添加到布局中两次(在其内部)。 XML 看起来像这样:
我想按进度绘制像这张图片一样的自定义drawrect: 但是,我的问题是将左上角的起点更改为中上角,到目前为止,这是我的自定义 View : public class RoundProgress ex
我想用自定义 View 试用 ViewBinding,例如: MainActivity layout_main.xml MyCustomView layout_my_custom_view.xml
我最近添加了 this我的 Android 项目中的 GitHub 存储库,所以我继续添加我的 gradle 依赖项,如下所示: dependencies { testCompile 'jun
我正在尝试在我的导航栏中使用自定义按钮,没有左右空格来边框,如下图所示: 这是创建 te barButton 的代码: UIImage *backImage = [UIImage imageNamed
是否有任何适用于 Android 的 CustomView 可以显示颜色盘(最好)或颜色网格并让您选择颜色? 最佳答案 您可以使用 API demoes 中的颜色选择器. 关于android - 是否
我制作了一个名为 CounterWidget 的自定义 View 。如图所示,给定数字的数字显示在单独的矩形框(包括逗号)中。对于小数字,渲染就很好。但是在大数字(非常大)的情况下,渲染会比屏幕大,一
在我的应用程序中,我有一个在“compassView”类中呈现的基本指南针。如果我像这样在我的 Display Compass Activity 中设置 contentView:compassView
我将 TabLayout 与 ViewPager 结合使用,并为我的选项卡设置了自定义 View 。选择和取消选择选项卡时,一切都按预期工作(自定义 View 根据选择/未选择的选项卡而改变)。 问题
我正在尝试创建一个允许我添加图像和文本的自定义 View 。我这样做的原因是因为在我创建的应用程序中,我一遍又一遍地重复相同的代码以实现这一点,我想尝试将它包装到自己的自定义 View 中,这样我就可
我有一个带有 2 个标签和图像的自定义按钮,如下面的类所示 import UIKit @IBDesignable class CustomButton : UIButton { let sec
所以,我想做这样的事情:从我的在线数据库中,我获得 x,y 坐标、对象的高度和宽度、对象的图像。我想制作自定义 View ,以便我可以将所有这些对象放置在正确的位置,以便这些对象在所有屏幕尺寸上都相同
在最终让每个 CustomView 完全包裹 Tab 父元素之后,我遇到了一个问题,即 Tab 太长并且正在将 Action Bar 变成一个 slider 。我的可绘制对象的宽度为 150px,这应
目前我想创建一个应用程序,它可以记录麦克风的声音并在 CustomView 中可视化 like this .录音效果很好,我还获得了录音的振幅,因此我可以使用以下代码在屏幕上绘制矩形: protect
我想在我的 CustomView(例如 EditText)中检测返回键事件。在很多情况下,它是在我的 CustomView 获得焦点的情况下通过覆盖 onKeyDown() 或 dispatchKey
我是一名优秀的程序员,十分优秀!