الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف اجعل عند اي تشغيل للبرنامج تظهر صورة تملأ الشاشه وبعدها تظهر القائمة الخاصة بالبرنامج؟

مغلق
بدأه projava في 23 أغسطس 2010 · 16 رد · 2,294 مشاهدة · في JavaME
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

الاخوة الاعزاء كيف يمكن عند تشغيل برنامج نصوص او قوائم او اي شيء تظهر اولا صوره تملأ الشاشة وتختفي بعد كم ثانية

ومن ثم تبدأ تفاصيل البرنامج واذا ممكن مثال متكامل

وشكرا لكم

تم تعديل هذه المشاركة بواسطة projava في 23 أغسطس 2010 في 10:45

#2
package myProject;

import javax.microedition.midlet.MIDlet;
import javax.microedition.lcdui.Display;

import myProject.screens.SplashScreen;

public class ProjectMIDlet extends MIDlet{

    public String ti;
    public String entrydate;
    public String result;

    private Display display;


    public ProjectMIDlet() {}

    public void startApp() {
        if(display == null){
            display = Display.getDisplay(this);
        }
        display.setCurrent(new SplashScreen(this));

    }

    public void pauseApp() {}

    public void destroyApp(boolean unconditional) {}

}

package myProject.screens;

import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.StringItem;

import myProject.ProjectMIDlet;

public class NextScreen extends Form implements CommandListener{

    private ProjectMIDlet projectMidlet;

    public NextScreen(ProjectMIDlet projectMidlet){
        super("Next Screen");
        this.projectMidlet = projectMidlet;
        init();
    }

    private void init(){
        StringItem si = new StringItem(null, "Next Screen");
        append(si);
    }

    public void commandAction(Command c, Displayable d){}
}

package myProject.screens;

import java.io.IOException;

import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;

import myProject.ProjectMIDlet;

/**
 * A simple splash screen.
 */
public class SplashScreen extends Canvas implements Runnable {

    private Image mImage;
    private ProjectMIDlet projectMIDlet;

    /**
     * The constructor attempts to load the named image and begins a timeout
     * thread. The splash screen can be dismissed with a key press,
     * a pointer press, or a timeout
     * @param projectMIDlet instance of MIDlet
     */
    public SplashScreen(ProjectMIDlet projectMIDlet){
        this.projectMIDlet = projectMIDlet;
        try{
        mImage = Image.createImage("/res/badge.jpg");
        Thread t = new Thread(this);
        t.start();
        }
        catch(IOException e){
            e.printStackTrace();
        }
    }

    /**
     * Paints the image centered on the screen.
     */
    public void paint(Graphics g) {
        int width = getWidth();
        int height = getHeight();

        //set background color to overdraw what ever was previously displayed
        g.setColor(0x000000);
        g.fillRect(0,0, width, height);
        g.drawImage(mImage, width / 2, height / 2,
                Graphics.HCENTER | Graphics.VCENTER);
    }

    /**
     * Dismisses the splash screen with a key press or a pointer press
     */
    public void dismiss() {
        if (isShown())
            Display.getDisplay(projectMIDlet).setCurrent(new NextScreen(projectMIDlet));
    }

    /**
     * Default timeout with thread
     */
    public void run() {
        try {
            Thread.sleep(3000);//set for 3 seconds
        }
        catch (InterruptedException e) {
            System.out.println("InterruptedException");
            e.printStackTrace();
        }
        dismiss();
    }

    /**
     * A key release event triggers the dismiss()
     * method to be called.
     */
    public void keyReleased(int keyCode) {
        dismiss();
    }

    /**
     * A pointer release event triggers the dismiss()
     * method to be called.
     */
    public void pointerReleased(int x, int y) {
        dismiss();
    }
}

تم تعديل هذه المشاركة بواسطة محمد عرسان في 23 أغسطس 2010 في 13:20

#3
projava كتب:

السلام عليكم ورحمة الله وبركاته

الاخوة الاعزاء كيف يمكن عند تشغيل برنامج نصوص او قوائم او اي شيء تظهر اولا صوره تملأ الشاشة وتختفي بعد كم ثانية

ومن ثم تبدأ تفاصيل البرنامج واذا ممكن مثال متكامل

وشكرا لكم

اذا كنت تعني بشاشة : splash screen التي تفيد المستخدم ما يتم تحميله عند بدء التشغيل

سوف يفيدك هذا المثال: How to implement a splash screen for an application

#4

شكرا للرد

ارجو من الاخ مهدي حجازي التوضيح بالنسبة للمثال علما اني طبقت المثال وظهر خطأ فارجو ان يوضح هل اعمل ثلاثة ملفات جافا ؟؟؟

واي ملف هو المشروع الرئيسي؟؟؟

#5
SamCode كتب:

اذا كنت تعني بشاشة : splash screen التي تفيد المستخدم ما يتم تحميله عند بدء التشغيل

سوف يفيدك هذا المثال: How to implement a splash screen for an application

هذا المثال خاص بال JSE و ليس ال JME

حيث يوجد به دوال و كائنات غير متوفرة سوى بال JSE لا يمكن استخدامها بال JME

تحياتي

projava كتب:

شكرا للرد

ارجو من الاخ مهدي حجازي التوضيح بالنسبة للمثال علما اني طبقت المثال وظهر خطأ فارجو ان يوضح هل اعمل ثلاثة ملفات جافا ؟؟؟

واي ملف هو المشروع الرئيسي؟؟؟

قم باستخدام الكود الحالي من مشاركة الاخ مهدي، ليس فيه خطأ (تم ازالة الاوسمة <Strong> من الكود)

لكن انتبه

لمكان الصورة و نوعها، حيث افضل استخدام ال png و ليس ال jpg

و تأكد ايضا من اسماء الصور

لان اسماها حساسة

حيث png تختلف عن PNG

ارجو ان وضحت الصورة

انظر الكود التالي و ذلك لتغيير حجم الصورة بما يناسب الشاشة

يتم تمرير كائن من نوع Image و قيمة عرض الشاشة {يمكن الحصول عليها كالتالي:

this.getWidth();

}

public static Image resizeImage(Image src, int screenWidth, int screenHeight)
{
    int srcWidth = src.getWidth();
    int srcHeight = src.getHeight();
    Image tmp = Image.createImage(screenWidth, srcHeight);
    Graphics g = tmp.getGraphics();
    int ratio = (srcWidth << 16) / screenWidth;
    int pos = ratio / 2;

    // Horizontal Resize
    for (int x = 0; x < screenWidth; x++)
    {
        g.setClip(x, 0, 1, srcHeight);
        g.drawImage(src, x - (pos >> 16), 0, Graphics.LEFT | Graphics.TOP);
        pos += ratio;
    }

    Image resizedImage = Image.createImage(screenWidth, screenHeight);
    g = resizedImage.getGraphics();
    ratio = (srcHeight << 16) / screenHeight;
    pos = ratio / 2;

    //Vertical resize
    for (int y = 0; y < screenHeight; y++) {
        g.setClip(0, y, screenWidth, 1);
        g.drawImage(tmp, 0, y - (pos >> 16), Graphics.LEFT | Graphics.TOP);
        pos += ratio;
    }

    return resizedImage;
}
1
#6

شكرا لك اخي الكريم محمد عرسان

تم متابعة ملاحظاتك وتنفذ الكود بدون اخطاء لكن لا يظهر الصور؟؟؟؟ علما اني سميت المشروع باسم ملف الجافا projectmidlet

ووضعت هذا الملف والملفين و splashscreen و nextscreen في مجلد src والصور ذات امتداد png في مجلد res وكما نعمل في البرامج الاخرى.

ارجو ان تنفذ البرنامج عندك وترى الخطأ مشكورا

#7

حسنا

mImage = Image.createImage("/res/badge.jpg");

هل موقع الصورة مطابق لما وضعه الاخ مهدي

حيث يجب ان يكون موقع الصورة هذه كالتالي (if you are using netbeans)

اقتباس

src/res/badge.jpg

و عند تغيير اسم الصورة الحقيقة عليك تغييرها في الكود ايضا

و ان كان نوعها png يجب تغييرها من jpg الى png في الكود

الكود يعمل 100% عندي

#8

الاخ محمد السلام عليكم وشكرا لتواصلك معي

اخي العزيز انا عملت جميع التغيرات وبما انه الصورة وضعتها في مجلد res اذن يكون مسارها (badge.png\) وعلى اي حال هذا المشروع مرفق وجربه انت

وانا انتظر ملاحظاتك مشكورا

ProjectMIDlet.rar

#9
محمد عرسان كتب:

هذا المثال خاص بال JSE و ليس ال JME

حيث يوجد به دوال و كائنات غير متوفرة سوى بال JSE لا يمكن استخدامها بال JME

تحياتي

+1

حياك الله أخي محمد عرسان :)

أسف لم انتبه لقسم الفرعي و ذلك ﻷني رأيت الموضوع من خلال قائمة (آخر المواضيع المضافة) blush.gif

و أعتذر لجميع اﻷخوة عن ذلك laugh.gif

#10

مشكورين على هذا الجهد الجميل ،،،

ولكن لدي شؤال كيف تجعل تطيبق j2me يعمل في شالشه كامله في الموبايل full screen

هل هذا ممكن أم لا ؟

مع العلم أنا هنالك برنامج به هذه الخاصيه موجود في هذا الرابط

http://seo.hawahome.com/ramadanapp/

تم تعديل هذه المشاركة بواسطة sma88 في 24 أغسطس 2010 في 12:19

banner1.gif

#11

فى المشروع اللى انت رافعه

عندك فى الـ classes انت عامل

فى الـ NextScreen Class

import myProject.ProjectMIDlet;
package myProject.screens;

مع انهم مش موجودين اساسا

مفيش package اسمها myProject

نفس النظام مع الـ ProjectMIDlet class

موجود

package myProject;
import myProject.screens.SplashScreen;

وفى الـ SplashScreen class

package myProject.screens;
import myProject.ProjectMIDlet;

وحسب وضعيه الصوره

الصوره موجوده فى الملف res

يقبى المسار بتاعها فالكود كدا

mImage = Image.createImage("/res/badge.png");

انت اخدت الكود ونسيت تعدل عليه

وانا عملت تجربه للكود على الـ netbeans واشتغل تمام

وهذا هووو

SplashMobile.rar

Software Developer
Mahmoudkelany.com


 

#12
sma88 كتب:

مشكورين على هذا الجهد الجميل ،،،

ولكن لدي شؤال كيف تجعل تطيبق j2me يعمل في شالشه كامله في الموبايل full screen

هل هذا ممكن أم لا ؟

مع العلم أنا هنالك برنامج به هذه الخاصيه موجود في هذا الرابط

http://seo.hawahome.com/ramadanapp/

تقريبا دا باستخدام الـ Canvas Class

واعاده تصميم الشاشه بتاعتك

−1

Software Developer
Mahmoudkelany.com


 

#13

السلام عليكم

اخ محمد والله هذا الكود اتعبني واتعبتك معي

الان انا عملت كل الذي ذكرته ولكن لم يعمل معي

الكود في المرفق وبودي تجربه على j2me وتعطيني النتيجة

اخي العزيز واذا ما اثقل عليك انا احتاج اعمل على برنامج netbeans وكلما اذهب الى الروابط الموجودة بالمنتدى اجدها لا تعمل ممكن تعطيني رابط

ProjectMIDlet.rar

تم تعديل هذه المشاركة بواسطة projava في 24 أغسطس 2010 في 15:54

#14
projava كتب:

السلام عليكم

اخ محمد والله هذا الكود اتعبني واتعبتك معي

الان انا عملت كل الذي ذكرته ولكن لم يعمل معي

الكود في المرفق وبودي تجربه على j2me وتعطيني النتيجة

اخي العزيز واذا ما اثقل عليك انا احتاج اعمل على برنامج netbeans وكلما اذهب الى الروابط الموجودة بالمنتدى اجدها لا تعمل ممكن تعطيني رابط

طب ممكن تشوفه بعد التعديل

ProjectMIDlet.zip

لكن بالنسبه لبرنامج الـ netbeans

هتحمل الاول JDK

http://www.oracle.com/technetwork/java/javase/downloads/jdk6-jsp-136632.html

وبعدين تحمل النت بينز

http://www.netbeans.com/downloads/index.html

لكن لاحظ فى موضوع تحميل النت بيز

لاحظ ان يكون الـ package اللى بتحملها تكون من ضمنها الـ J2ME

مثل الـ java Package او الـ all Package

Software Developer
Mahmoudkelany.com


 

#15

الاخ محمد ايضا لا تظهر الصورة وهل الكود لا يعمل على j2me ????

اطلب من الاخوة الاعزاء جميعا تجربة الكود المرفق في j2me واعطاءنا النتيجة علما ان مسار الصورة حاولت تغيره ايضا ولم ينفع اي مرة استخدمت res/badge.png/ ومرة badge.png/

اما برنامج الـ netbeans فان الرابط الاول طلب مني ايميل وباسوورد ادخلتهما ولكن يعطيني خطأ؟؟؟؟؟؟؟؟؟؟

ProjectMIDlet.zip

تم تعديل هذه المشاركة بواسطة projava في 25 أغسطس 2010 في 07:13

#16
projava كتب:

الاخ محمد ايضا لا تظهر الصورة وهل الكود لا يعمل على j2me ????

اطلب من الاخوة الاعزاء جميعا تجربة الكود المرفق في j2me واعطاءنا النتيجة علما ان مسار الصورة حاولت تغيره ايضا ولم ينفع اي مرة استخدمت res/badge.png/ ومرة badge.png/

اما برنامج الـ netbeans فان الرابط الاول طلب مني ايميل وباسوورد ادخلتهما ولكن يعطيني خطأ؟؟؟؟؟؟؟؟؟؟

اممم اكيد فيه عندك حاجه فالبرنامج اللى انت بتستخدمه

لكن الكود شغال على الـ J2ME كويس

اما بالنسبه للبرابط الاول بتاع الـ JDK اللى بيطلب تسجيل

مش تعمل له تسجيل

هتفتح الرابط

هتعمل زى اللى فى الصور كدا

post-217802-030830900 1282750668_thumb.p

post-217802-085359800 1282750672_thumb.p

post-217802-050718800 1282750677_thumb.p

اتمنى ان توفق فى ذلك

سلام عليكم

المرفقات
JDK1.pngJDK2.pngJDK3.png

Software Developer
Mahmoudkelany.com


 

#17
projava كتب:

الاخ محمد ايضا لا تظهر الصورة وهل الكود لا يعمل على j2me ????

اطلب من الاخوة الاعزاء جميعا تجربة الكود المرفق في j2me واعطاءنا النتيجة علما ان مسار الصورة حاولت تغيره ايضا ولم ينفع اي مرة استخدمت res/badge.png/ ومرة badge.png/

اما برنامج الـ netbeans فان الرابط الاول طلب مني ايميل وباسوورد ادخلتهما ولكن يعطيني خطأ؟؟؟؟؟؟؟؟؟؟

قم بنقل مجلد ال res الى داخل ال src وسيعمل ان شاء الله.

أخي projava يبدو لي من اسئلتك انك تفتقد للاساسيات فارجو منك مطالعه الدروس الموجوده في القسم قبل طرح اسئلتك كما أنصجك باستخدام NetBeans

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…