0
我正在使用RelativeLayout将视图定位在屏幕上的精确位置。这可以像预期的那样使用一个视图来绘制矩形。但是当使用像EditText这样的Android视图时,它们的绘制时间比大约8个单位的指定时间要短。点击绘制的EditText之外(但是在由RelativeLayout指定的参数内),实际上会点击EditText。Android视图不像指定的高度
下面是一些代码来说明我的意思:
package com.DrawDemo;
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.RelativeLayout;
public class DrawDemo extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
RelativeLayout l = new RelativeLayout(this);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(100,100);
lp.leftMargin = 50;
lp.topMargin = 50;
DemoView demoview = new DemoView(this);
l.addView(demoview, lp);
EditText editText = new EditText(this);
l.addView(editText, lp);
setContentView(l);
}
private class DemoView extends View
{
public DemoView(Context context)
{
super(context);
}
@Override protected void onDraw(Canvas canvas)
{
super.onDraw(canvas);
Paint paint = new Paint();
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.GREEN);
canvas.drawPaint(paint);
}
}
}
如果执行此,你会发现,EditText上明显比矩形短。我尝试过用onMeasure,setMinimumXXX,以及其他所有我能想到的东西。到目前为止,只有在高度上添加8个左右的像素才能实现某种程度的成功(8似乎比尝试使用高度的百分比效果更好)。
接下来的任务将是进入源代码,但想知道是否有人已经解决了这个问题。
谢谢。
你能提供截图吗?我无法在代码中看到您实际尝试完成的任务... – WarrenFaith 2011-02-17 21:08:15
您可以尝试http://img508.imageshack.us/i/screenht.jpg/。基本上,我使用完全相同的参数添加两个视图。一个视图(为了清晰起见,我为了绿色而绘制的矩形)遵守参数。另一个视图(EditText)比参数状态短。有趣的是,我可以点击EditText下方显示的绿色部分,EditText就好像我点击它一样响应。所以也许我只需要摆弄利润或什么东西? – Darrell 2011-02-17 21:27:46