当前位置: 代码迷 >> J2ME >> 怎樣在手機中顯示二行二列的圖片,并在每張圖片前加一下單選按鈕?解决办法
  详细解决方案

怎樣在手機中顯示二行二列的圖片,并在每張圖片前加一下單選按鈕?解决办法

热度:7020   发布时间:2013-02-25 21:37:24.0
怎樣在手機中顯示二行二列的圖片,并在每張圖片前加一下單選按鈕?
如:有圖片1,2,3,4
想在界面上顯示效果如下。

o1     o2
o3     o4

其中的o是單選按鈕。

謝謝!

或者是顯示二行二列的四張圖片,選擇其中一個圖片后在那個圖片中顯示“選擇”這二個字。


------解决方案--------------------------------------------------------
用低级界面
------解决方案--------------------------------------------------------
思想是用canvas画出四张图片,包括每张图片前面的未选中的图片o,设置初始焦点位置为第一张图片,如果有图片被选中,把选中图片@覆盖在未选中图片上,并且计算图片后面位置g.drawString() "选择 "。
在paint(Graphics g)方法里画图片,并且确定焦点,定义location,place,当location==place时即为获得焦点
移动焦点调用如下: public void keyPressed(int keycode){
switch(getGameAction(keycode)){
case Canvas.DOWN:
location--;
place--;
}
}
------解决方案--------------------------------------------------------
使用Canvas自己画,然后使用Canvas类中keyPressed函数处理用户的按键事件。
------解决方案--------------------------------------------------------
还不如这样,画一个像鼠标一样的东东,然后用setClip 分别画1,2,3,4
当按键时,更新鼠标坐标,使其指向需要选定的图片...当图片被指向时,再在图片背后画一层框醒目提示..不是要 "性感 "得多吗^_^
------解决方案--------------------------------------------------------
完全达到这种需求和布局得用低级界面自己画了.
既然是低级界面,自然没有单选框这种控件可用.
所以得自己画单选框的样子,自己控制单选框的行为.细节还是挺多的.
------解决方案--------------------------------------------------------
cxc014(有心插柳柳不活,无心栽花花开花?)

还不如这样,画一个像鼠标一样的东东,然后用setClip 分别画1,2,3,4
当按键时,更新鼠标坐标,使其指向需要选定的图片...当图片被指向时,再在图片背后画一层框醒目提示..不是要 "性感 "得多吗^_^

-----------------------------------------------------------------------------------
哈哈,是挺性感的啊.我按照你的做了个demo.你看看是这种效果嘛?


//MainMidlet.java
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class MainMidlet extends MIDlet {
private static MainMidlet instance;
private Displayable nowScreen;
private Display display;

public MainMidlet() {
instance = this;
nowScreen = new CanvasTest();
}

public void startApp() {
display = Display.getDisplay(this);
display.setCurrent(nowScreen);
}

public void pauseApp() {
nowScreen = display.getCurrent();
}

public void destroyApp(boolean unconditional) {
}

public static void quitApp() {
instance.destroyApp(true);
instance.notifyDestroyed();
instance = null;
}
}

------------------------------------------------
//CanvasTest.java
import javax.microedition.lcdui.*;

public class CanvasTest extends Canvas implements CommandListener {
private Image screen;
private Graphics bufferG;
private int borderX = 5;
private int borderY = 5;
private int mouseX = 15;
private int mouseY = 15;

public CanvasTest() {
screen = Image.createImage(getWidth(),getHeight());

addCommand(new Command( "退出 ", Command.EXIT, 1));
setCommandListener(this);
}

public void commandAction(Command _command, Displayable _displayable) {
if (_command.getCommandType() == Command.EXIT) {
MainMidlet.quitApp();
}
}

protected void paint(Graphics g) {
//缓冲清屏
bufferG = screen.getGraphics();
bufferG.setColor(0x00FFFF00);
bufferG.fillRect(0, 0, getWidth(), getHeight());

//画四个图片
bufferG.setColor(0x000000FF);
bufferG.fillRect(10, 10, 40, 30);
  相关解决方案