当我点击按钮时,调用drawDigit(),puzzleview只是Activity中的LinearLayout
protected void drawDigit(Canvas canvas, int digit) {
// TODO Auto-generated method stub
if(num < diff){
int x = tiles.get(num).getScrollX(); // get the X coordinate of ImageView,it's 0
int y = tiles.get(num).getScrollY(); // get the Y coordinate of ImageView,it's 0
float height = tiles.get(num).getHeight(); // height is 0
float width = tiles.get(num).getWidth(); // width is 0
background.setTextSize(height * 0.75f);
background.setStyle(Style.FILL);
background.setTextScaleX(width/height);
background.setTextAlign(Paint.Align.CENTER);
canvas.drawText(digit + "", x, y, background);
//num++;
}
}
如何将布局中的ImageView
分配给切片,然后获取坐标和大小?
答案 0 :(得分:1)
你可以试试这个:
//这是为了获取在布局中修复的ImageView大小
int imageHeight;
int imageWidth;
ImageView imageViewObj = (ImageView)findViewById(R.id.image_view_id);
ViewTreeObserver treeObsObj = imageViewObj.getViewTreeObserver();
treeObsObj.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
public boolean onPreDraw() {
imageWidth= imageViewObj.getMeasuredWidth();
imageHeight = imageViewObj.getMeasuredHeight();
return true;
}
});
//在ImageView中获取图像的大小,大小将根据不同而不同 ** //放置在ImageView中的图像
ImageView imageObj = (ImageView)findViewById(R.id.image_view_id);
int imageWidth = imageObj.getWidth();
int imageHeight = imageObj.getHeight();