Blackberry 为什么我的矩形位图在绘制时被剪裁成正方形?

Blackberry 为什么我的矩形位图在绘制时被剪裁成正方形?,blackberry,bitmap,field,Blackberry,Bitmap,Field,我正在创建一个自定义字段来创建一个图像按钮。图像绘制为一个w和h相等的长方体,但图像的高度几乎是宽度的两倍。我运行了调试器,正确的w,h被放入g.drawBitmap(0,0,w,h,image,0,0)。你有办法解决这个问题吗 public类cpicutrutton扩展字段{ 私有位图图像; 公共链接(位图图像,长样式) { 超级(风格); 这个。图像=图像; } public int getPreferredHeight() { 返回image.getHeight(); //返回getFon

我正在创建一个自定义字段来创建一个图像按钮。图像绘制为一个w和h相等的长方体,但图像的高度几乎是宽度的两倍。我运行了调试器,正确的w,h被放入
g.drawBitmap(0,0,w,h,image,0,0)
。你有办法解决这个问题吗

public类cpicutrutton扩展字段{
私有位图图像;
公共链接(位图图像,长样式)
{
超级(风格);
这个。图像=图像;
}
public int getPreferredHeight()
{
返回image.getHeight();
//返回getFont().getHeight();
}
public int getPreferredWidth()
{
返回image.getWidth();
//返回getFont().getAdvance(标签)+8;
}
受保护的void drawFocus(图形g,布尔值开启)
{
}
受保护的空心漆(图g)
{
int w=image.getWidth();
int h=image.getHeight();
g、 绘制位图(0,0,w,h,图像,0,0);
if(isFocus())
g、 drawRect(0,0,image.getWidth(),image.getHeight());
}
受保护的空心布局(内部宽度、内部高度){
setExtent(Math.min(width,getPreferredWidth()),
Math.min(高度,getPreferredWidth());
}
公共布尔值可聚焦(){
返回true;
}
受保护的布尔导航单击(int状态,int时间)
{
fieldChangeNotify(0);
返回true;
}
}

复制和粘贴可能是你干的。setExtent的第二个参数应调用getPreferredHeight():

调用paint时,getExtent()返回什么?
  setExtent(Math.min(width, getPreferredWidth()), 
        Math.min(height, getPreferredWidth()))