首先,提前感谢您提供的任何帮助。这一直让我疯狂,谷歌也不是我的朋友。
我创建了一个DrawView,因此用户可以在应用程序中绘制一些内容。我想要做的是将DrawView放在布局XML文件中,这样我就可以在顶部放置一个TextView标题,在底部放置两个按钮,其中一个将保存用户绘制的图像文件。到目前为止,我所能做的就是创建一个供用户绘画的区域。有没有办法将这个DrawView视图放到XML文件中?如果没有,我有哪些替代解决方案?
此外,这是一个可选的问题,因为我确信我会在某些时候通过Google搜索找到解决方案,但除了canvas.drawLine之外,还有更好的方法可以顺畅地绘制用户的手指移动( )我目前正在使用的方法?
public class Draw extends Activity {
DrawView drawView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Set full screen view
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
requestWindowFeature(Window.FEATURE_NO_TITLE);
drawView = new DrawView(this);
setContentView(drawView);
drawView.requestFocus();
}
}
public class DrawView extends View implements OnTouchListener {
private static final String TAG = "DrawView";
ArrayList <Float> nikpointx = new ArrayList<Float>();
ArrayList <Float> nikpointy = new ArrayList<Float>();
Bitmap nikbmp;
Paint paint = new Paint();
public DrawView(Context context) {
super(context);
setFocusable(true);
setFocusableInTouchMode(true);
this.setOnTouchListener(this);
paint.setColor(Color.WHITE);
paint.setAntiAlias(true);
paint.setStrokeWidth(4);
}
@Override
public void onDraw(Canvas canvas) {
//I'm doing this, because the drawCircle method places circles at different points
//in the screen, rather than drawing smooth lines. I haven't found a more elegant
//solution yet :-(
canvas.drawLine(nikpointx.get(i-1), nikpointy.get(i-1), nikpointx.get(i), nikpointy.get(i), paint);
canvas.setBitmap(nikbmp);
}
}
public boolean onTouch(View view, MotionEvent event) {
// if(event.getAction() != MotionEvent.ACTION_DOWN)
// return super.onTouchEvent(event);
Point point = new Point();
point.x = event.getX();
point.y = event.getY();
points.add(point);
invalidate();
Log.d(TAG, "point: " + point);
nikpointx.add(event.getX());
nikpointy.add(event.getY());
return true;
}
}
答案 0 :(得分:0)
您可以将自定义视图放在xml布局中,如下所示:
<full.package.to.customview.DrawView android:id="@+id/idOfCustom"
//other attributes
/>
您还可以向视图添加自定义属性,以直接从xml文件进行设置。
我没有解决你的第二个问题。
编辑:在此网站上快速搜索后,我发现了这个 - &gt; Android How to draw a smooth line following your finger