在这种情况下,我想在画布上画一些值。这些值来自另一个活动。
Canvas myCanvas;
public void findSubUnit(String name) {
unitName = name;
for (Entry<String, ArrayList<String>> values : subUnits.entrySet()) {
key = values.getKey();
if (unitName.equalsIgnoreCase(key)) {
Log.i("prj,match unit=", key);
v = values.getValue();
myCanvas = new Canvas();
onDraw(myCanvas);
}
}这是我的onDraw方法。
void onDraw(Canvas canvas, ArrayList<String> units) {
Paint paint = new Paint();
paint.setColor(Color.RED);
canvas.drawText("hello", 100, 130, paint);
}它什么也没有显示,甚至没有一个错误。如何显式地将arraylist发送到onDraw。
发布于 2019-06-11 05:41:39
您需要创建自定义视图并覆盖所有3个承包商,将ArrayList单元放入自定义类中,为ArrayList编写setter getter,然后调用
requestLayout();
论自定义视图
无效()只会导致视图被重绘:http://developer.android.com/reference/android/view/View.html#invalidate()
requestLayout()要求视图通过一个新的度量/布局传递(然后重画):http://developer.android.com/reference/android/view/View.html#requestLayout()
https://stackoverflow.com/questions/19487854
复制相似问题