ví dụ đơn giản về load ảnh trong J2ME

Discussion in 'Bài viết hướng dẫn JME' started by thanzeus, 24/7/10.

  1. thanzeus New Member

    sửa đoạn

    Code:
     this.image = Image.createImage("/mobile.png");
    sao cho phù hợp với link ảnh nhé!


    Code:
    import javax.microedition.lcdui.*;
    import javax.microedition.midlet.*;
    
    public class SlideImage extends MIDlet{
      private Display display;
      private SimpleSlidingCanvas canvas;
      
      public void startApp(){
        canvas = new SimpleSlidingCanvas();
        display = Display.getDisplay(this);
        display.setCurrent(canvas);
      }
    
      public void pauseApp(){}
    
      public void destroyApp(boolean unconditional){
        notifyDestroyed();
      }
    }
    
    class SimpleSlidingCanvas extends Canvas implements Runnable{
      Image image = null;
    
      public SimpleSlidingCanvas(){
        try{
          this.image = Image.createImage("/mobile.png");
          new Thread(this).start();
        }catch(Exception e){
          e.printStackTrace();
        }
      }
    
      public void run(){
        while(true){
          repaint();
          try{
            synchronized(this){
              wait(50L);
            }
          }catch(Exception e){
            e.printStackTrace();
          }
        }
      }
    
      protected void paint(Graphics g){
        g.setColor(0xffffff);
        g.fillRect(0, 0, getWidth(), getHeight());
    
        if(image != null){
          g.drawImage(image, getWidth() / 2, getHeight() / 2, Graphics.HCENTER
          | Graphics.VCENTER);
        } else {
          g.setColor(0x000000);
          g.drawString("No image available", getWidth() / 2, getHeight() / 2, 
          Graphics.HCENTER | Graphics.BASELINE);
        }
      }
    }
  2. JackV Administrator

    Ðề: ví dụ đơn giản về load ảnh trong J2ME

    okie. Bạn bỏ code vào trong tag
    Code:
     sẽ dễ nhìn hơn vì nó không bị căn sát lề hết như thế.
  3. chuotfx Member

    Ðề: ví dụ đơn giản về load ảnh trong J2ME

    ví dụ hay đó,mà nếu kô dùng làm game thì kô cần dùng luồng,chĩ cần có sự kiện thì gọi repaint là đc rồi.

    Còn 1 vấn đề là bức ảnh lớn hơn kích thức màng hình,thì nó sẽ kô hiễn thị hết bức ảnh.

    Sau đây bổ sung thêm code resize ảnh cho phù hợp:

    PHP:

    import javax
    .microedition.lcdui.Image;

    public class 
    ReSize  {
       
    // public Image newIm=null;
        
    public static Image resize(Image oldIm,int newW,int newH){

           
    Image newIm=null;
            
    int oldW=oldIm.getWidth();
        
    int oldH=oldIm.getHeight();

                
    // tạo 1 mãng chứa các RGB
            
    int[] arrOld=new int[oldW*oldH];
        
    int[] arrNew=new int[newW*newH];

            
    oldIm.getRGB(arrOld0oldW,00oldWoldH);
                     
    //mãng dữ liệu cũ,địa chĩ oFfset,độ dài 1 hàng,tọa độ góc trên,tọa độ góc dưới

            // ánh xạ từng điểm qua bên New
            
    for(int i=0;i<newH;i++){
                
    int temp=i*oldH/newH;
                for(
    int j=0;j<newW;j++){
                    
    arrNew[i*newW+j]=arrOld[temp*oldW+j*oldW/newW];
                }
            }

            
    //tạo 1 IMAGE bằng dữ liệu cũ
            
    newIm =Image.createRGBImage(arrNewnewWnewHtrue);
        return 
    newIm;
        }
    }
  4. thanzeus New Member

    Ðề: ví dụ đơn giản về load ảnh trong J2ME

    nếu trong game mà A resize thì ví dụ hình ảnh của map đang là to bị resize cho nhỏ = màn hình điện thoại chi chơi sao được A ^^! không biết E hiểu nt đã đúng ý A chưa
  5. chuotfx Member

    Ðề: ví dụ đơn giản về load ảnh trong J2ME

    nếu như thế thì sao resize đc em,vì ảnh nên để mình còn di chuyển qua lại.Cái này là resize 1 bức ảnh thui,thì có cách này cách kia cho đẹp thui mà,như em lúc load game ra,vào menu,nếu hình nền menu quá lớn thì sao,mình nên resize lại cho phù hợp thui à
  6. JackV Administrator

    Ðề: ví dụ đơn giản về load ảnh trong J2ME

    à, tùy game mà resize chứ, ví dụ như mình thiết kế map cho màn hình lớn, khi chuyển cho máy màn hình nhỏ hơn thì phải resize tỷ lệ. Nhưng nếu tỉ lệ lệch quá thì cũng phải design map mới cho đẹp.
  7. thanzeus New Member

    Ðề: ví dụ đơn giản về load ảnh trong J2ME

    À. Ý e là làm game nhập vai (background di chuyển) thì mình k cần resize. Hj
  8. baccomz New Member

    Ðề: ví dụ đơn giản về load ảnh trong J2ME

    Các bác ơi,,,giờ e mới bắt đầu học Java mà đã phải làm cái Project về Mobile rồi, e đọc code chỉ hiểu chút chút nhưng e vẫn k biết cách từ code làm sao để biến nó thành 1 chương trình hay 1 ứng dụng cụ thể được, các bác chỉ giúp e naz.
    Tks các bác nhiều
  9. Slim.getName() New Member

    Ðề: ví dụ đơn giản về load ảnh trong J2ME

    Click chuột phải vào project rồi chọn deploy là xong:D
  10. MrPhuongDeE New Member

    Ðề: ví dụ đơn giản về load ảnh trong J2ME

    Mình mới bắt đầu học J2Me, mới download + cài đặt bộ Java Me Platform SKD 3.0 về (tại cái java writeless toolkit giờ không còn link down nữa).
    Mình có coppy ví dụ của bạn về nhưng mình băn khoăn không biết phải lưu hình ảnh vào thư mục nào trong project ( build, dist, nbproject, src).
    Bạn nào biết thì chỉ dùm mình với nhé, nhân đây ai có link down "java writeless toolkit" thì share cho mình với nhé.
    Cảm ơn các bạn :D.
  11. cungayngo New Member

    cho vào src nha bn.. t cũng mới học cái này...... hehe
  12. dangvansang New Member

  13. Never_give_up New Member

    Cho mình hỏi là cái file ảnh kia mình tạo thư mục có tên res trong thư mục của Project rồi copy ảnh vào đó à, hay copy ảnh vào thư mục src? Sao mình code đúng rồi mà run vẫn không hiển thị đc ảnh, hic
  14. Never_give_up New Member

    à mình làm được rồi, thì ra là tại cái máy ảo của Netbeans nó bị lỗi, cài lại netbeans chạy ngon lành rồi :D
    Cơ mà j2me chỉ load đc ảnh png thôi à, định dạng khác ko load đc à ?
  15. Xoài Xanh New Member

    jpg vẫn load bình thường mà :D
  16. Never_give_up New Member

    có cách nào hiển thị ảnh trong form mà ko cần dùng canvas ko nhỉ :D
  17. jimhawkins Member

  18. Thụ Nguyễn New Member

    Em hỏi chút...giờ em mới bước chân vào J2ME ..còn nhiều khó khăn mong các pro đi trước chỉ bảo ạ
    Sao khi em tạo private SimpleSlidingCanvas canvas; thì nó báo lỗi 'SimpleSlidingCanvas ' nhỉ :(
  19. mhung08 New Member

    mình muốn khi kích vào 1 nút thì 1 forder hiện lên (trong thẻ nhớ hoặc thư mục của project) và khi kích vào tên ảnh+ nút ok thì ảnh sẽ được load trên màn hình điện thoại.
    bạn nào có thể giúp mình được không?

Chia sẻ trang này



Ve may bay di Ha Noi | Ve may bay di Vinh | Ve may bay di Hue | Ve may bay di Da Nang | Ve may bay di Nha Trang | Ve may bay di Da Lat | Ve may bay di Phu Quoc | Ve may bay di Sai Gon | Ve may bay di TPHCM | Ve may bay di Buon Me Thuot | Ve may bay di Hai Phong | Ve may bay di Dong Hoi | Ve may bay Vietjet Air | Phong ve may bay Vietjet Air | Ve may bay Vietnam Airlines | Phong ve may bay Vietnam Airlines | Ve may bay Vietnam Airlines | Ve may bay gia re | Ve may bay | Mua ve may bay | Jetstar | Vietnam Airlines | Air Asia | Tiger Airways | Ve may bay di My | Vietjet Air | Ve may bay di Ha Noi | Ve may bay di Da Nang | Ve may bay di Hai Phong | Ve may bay di Vinh