黑莓低级图形
问题描述:
大家好,我是黑人新手。我想使用低级图形来绘制位图。在此bitmapfield我需要采取三项行动为黑莓低级图形
- 挑bitmapfield,
- 拖动它在屏幕在任何方向和
- 在屏幕上的任意一点终于松开。
我该怎么做。 如果Canvas可以成为一个解决方案......任何人都可以帮助我解决一些如何使用Canvas的示例代码。
也有任何其他的方法来制作一个可拖动的位图字段.. ??
请帮
答
首先,你可以创建一个位图,并得到一个图形从它反对做定制版上绘制。
Bitmap myBitmap = new Bitmap(widht, height);
Graphics graphics = Graphics.create(myBitmap);
// now you can draw anything on graphics supported by API
将帖子
我已经在屏幕上增加了一个代码段用于拖动的图像。你可以检查这个代码,如果它在你身边。
class MyScreen extends MainScreen {
private final Bitmap myBm;
private int wBm;
private int hBm;
private int xBm;
private int yBm;
private boolean dragStarted;
public MyScreen() {
myBm = Bitmap.getBitmapResource("img/myBitmap.png");
if (myBm != null) {
wBm = myBm.getWidth();
hBm = myBm.getHeight();
}
}
protected void paint(Graphics graphics) {
// need to adjust z-index of the items added on screen.
super.paint(graphics);
if (myBm != null) {
graphics.drawBitmap(xBm, yBm, wBm, hBm, myBm, 0, 0);
}
}
protected boolean touchEvent(TouchEvent event) {
int x = event.getX(1);
int y = event.getY(1);
int eventCode = event.getEvent();
if (dragStarted == false & (eventCode == TouchEvent.DOWN)) {
if (isDragActivated(x, y)) {
// need to adjust offset.
dragStarted = true;
updateBitmapLocation(x, y);
}
}
if (eventCode == TouchEvent.MOVE && dragStarted) {
updateBitmapLocation(x, y);
}
if (eventCode == TouchEvent.UP && dragStarted) {
dragStarted = false;
updateBitmapLocation(x, y);
}
// need to decide what to return
return true;
}
private void updateBitmapLocation(int xTouch, int yTouch) {
if (xTouch != xBm && yTouch != yBm) {
xBm = xTouch;
yBm = yTouch;
invalidate();
}
}
private boolean isDragActivated(int x, int y) {
return (x >= xBm && x <= xBm + wBm && y >= yBm && y <= yBm + hBm);
}
}
我已经尝试了本way..its使得整个屏幕为可拖动..我想拖tmage只有在不移动屏幕 – Swati 2012-02-01 12:50:27
其实屏幕不动过,如果你有,你可以控制一切触摸事件。我不确定你尝试过什么,你可以粘贴你的代码,以及你试过的问题。 – Rupak 2012-02-01 14:10:42