对于Android来说,ui相当新,搜索了很多,但无法为我的问题找到解决方案。
目标: 我想在屏幕上显示随机颜色的随机形状。
到目前为止,我的方法是创建按钮并将形状(xml)设置为背景。这工作正常,但我无法改变形状的颜色。此外,创建按钮只是为了显示形状似乎有点小。
创建形状的最佳方法是什么(例如方形,三角形等),从colors.xml中给它一个随机颜色并最终显示它?
答案 0 :(得分:1)
您可以创建自己的自定义视图,并使用onDraw(Canvas canvas)
方法通过调用以下canvas
类方法将圆形,矩形,三角形绘制到Canvas
对象:
要更改颜色,您可以使用Paint
类为其设置不同的颜色,如下所示:
paint.setColor(Color.RED);
这是一个非常简单的自定义View
类,我用它绘制不同颜色的形状:
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;
/**
* Created by Arlind on 09-Dec-15.
*/
public class ArlindCustomView extends View
{
private Paint paint = new Paint();
public ArlindCustomView(Context context) {
super(context);
}
public ArlindCustomView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public ArlindCustomView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public void onDraw(Canvas canvas)
{
paint.setAntiAlias(true);
paint.setColor(Color.RED);
canvas.drawCircle(300,100,50,paint);
paint.setColor(Color.BLUE);
canvas.drawCircle(80,90,70,paint);
paint.setColor(Color.BLUE);
canvas.drawRect(200, 200, 250, 250, paint);
paint.setColor(Color.YELLOW);
canvas.drawRect(300, 300, 350, 350, paint);
}
}
您可以将此类添加到xml或以编程方式添加。