PDA

View Full Version : MIDPCanvas



parnian~parnian
یک شنبه 10 مرداد 1389, 16:28 عصر
سلام
کسی تا الان گرافیک برنامه نویسی موبایل با MIDPCanvas کار کرده ؟
من آشنایی دارم فقط می خوام بدونم که هر برنامه ای می نویسم اجرا نمیشه چون فقط برنامه های با پسوند MIDlet اجرا می شه منم با اون کار کردم ولی نیاز دارم با MIDPCanvas کار کنم تا تصویر پشت زمینه ی پروژم بندازم
سوال دوم : بهترین جایگزین rms و فایل چیه ؟

mahdi68
یک شنبه 10 مرداد 1389, 18:12 عصر
کسی تا الان گرافیک برنامه نویسی موبایل با MIDPCanvas کار کرده ؟
من آشنایی دارم فقط می خوام بدونم که هر برنامه ای می نویسم اجرا نمیشه چون فقط برنامه های با پسوند MIDlet اجرا می شه منم با اون کار کردم ولی نیاز دارم با MIDPCanvas کار کنم تا تصویر پشت زمینه ی پروژم بندازم
بلی - اینو امتحان کنید
ِDisplay.getDisplay(this).setCurrent(new MIDPCanvas());

parnian~parnian
دوشنبه 11 مرداد 1389, 08:46 صبح
ممنون ازتون
اين چجور كديه دقيقا چكاري انجام ميده ؟
يعني اگه توي محيط MIDPCanvas بزارم اجرا ميشه ؟
و اين كه من هر كاري ميكنم نميتونم تصوير و با مثلا Stringitem يا item هاي ديگه بيارم و تصوير يه عكس پشت زمينه براي پرو‍ه بشه :عصبانی++:

m121212
دوشنبه 11 مرداد 1389, 09:51 صبح
سلام دوست عزیز
شما برای نمایش اشیایی از جنس Canvas حتما باید اون شی را برای نمایش توسط تابع
setcurrent() به شی Displayable که توسط
Display.getDisplay(this)ِDisplay.getDisplay(this) بفرستی ، به عبارتی بهتر شما ابتدا یک کلاس Canvas بساز و هر آنچه می خواهی در آن رسم کن سپس در کلاس اصلی برنامه (MIDP) با کد
Display.getDisplay(this).setCurrent(new youcanvas());
شی ساخته شدتون رو در صفحه موبایلتون ببینید.
البته توجه داشته باشید که عبارت
youcanvas() باید با نام کلاس شما جایگزین شود.

parnian~parnian
سه شنبه 12 مرداد 1389, 21:58 عصر
ممنون ولی این کدی که نوشتین رو هر جایی میزارم نمیشه ؟ یعنی از کد error میده .بعد Display.getDisplay(this)دیگه نقطه رو قبول نمیکنه یعنی براش ناشناختس
دیگه نمیدونم چیکار باید بکنم کدهای خیلی خیلی زیادی رو از توی کتابای زبان اصلی و اینترنت مطالعه کردم ولی هیچ کدوم پشت زمینه برنامشون عکس نداشتن اگه یه نمونه کوچولو بزارین که اجراشه ممنون میشم.

mahdi68
سه شنبه 12 مرداد 1389, 22:39 عصر
/*







/**
* @author mahdi
*/
public class Midlet extends MIDlet implements CommandListener {





public void startApp() {


Display.getDisplay(this).setCurrent(new MIDPCanvas());
}

public void pauseApp() {
}

public void destroyApp(boolean unconditional) {
}

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

public void doDeviceDiscovery() {



}

}
}

pedram123
چهارشنبه 13 مرداد 1389, 13:28 عصر
ممنون ازتون
اين چجور كديه دقيقا چكاري انجام ميده ؟
يعني اگه توي محيط MIDPCanvas بزارم اجرا ميشه ؟
و اين كه من هر كاري ميكنم نميتونم تصوير و با مثلا Stringitem يا item هاي ديگه بيارم و تصوير يه عكس پشت زمينه براي پرو‍ه بشه :عصبانی++:

شما در canvas از گرافیک سطح پایئن استفاده می کنید. باید تمامی مواردی رو که می خوای روی canvas نمایش بدید رو خودتون بسازید . :گیج:




------------
سفارش ساخت نرم افزار موبایل (http://www.ir-ns.com/index.php?id=733)

parnian~parnian
پنج شنبه 14 مرداد 1389, 15:13 عصر
سعی میکنم ولی نمیشه

من وقتی یه کلاس extend به canvas درست میکنم مثلا اسمش هست mycanvas بعد اگه داخل این کلاس یه متد

mycanvas()

درست کنم و داخلش بنویسم mycanvasfun نقطه میزارم هیچ کدوم از متد ها یی که می خوام نمیاد مثل append و بقیه .میشه راهنماییم کنید چطوری این کارو بکنم یا یه نمونه برنامه کوچیک برام بزارین؟
ممنون میشم

parnian~parnian
پنج شنبه 14 مرداد 1389, 15:20 عصر
دوست عزیز (mahdi68):
نمونه برنامه که گذاشتین رو امتحان کردم ولی نتیجه ای نگرفتم یعنی چیز هایی که روی عکس می زارم نشون داده نمیشه فقط عکس رو نمایش میده :گریه:

mahdi68
پنج شنبه 14 مرداد 1389, 15:23 عصر
باید در تابع paint() بعد از رسم عکس بزارین چون اگه قبلش باشه عکس رو اونا رسم میشه

parnian~parnian
جمعه 15 مرداد 1389, 14:47 عصر
import java.io.IOException;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class M23 extends MIDlet
{
private Display display;
private MyCanvas23 canvas;

public M23() throws IOException
{
Display.getDisplay(this).setCurrent(new MyCanvas23 (this) );
//display = Display.getDisplay(this);
//canvas = new MyCanvas23(this);
}
protected void startApp()
{
display.setCurrent( canvas );
}
protected void pauseApp()
{
}
protected void destroyApp( boolean unconditional )
{
}
public void exitMIDlet()
{
destroyApp(true);
notifyDestroyed();
}
}
class MyCanvas23 extends Canvas implements CommandListener
{
private Command exit;
private Image image = null;
private M23 arcFilledExample;
private Display display1;
private Form form;
private Displayable displayable;
private TextField textfield1, textfield2;
private StringItem stringitem;
private Command quit, ok ;
public MyCanvas23 (M23 arcFilledExample) throws IOException
{
this.arcFilledExample = arcFilledExample;
exit = new Command("Exit", Command.EXIT, 1);
addCommand(exit);
setCommandListener(this);
image = Image.createImage("/3.png");
}
protected void paint(Graphics g)
{
g.drawImage(image, 50, 70, Graphics.VCENTER | Graphics.HCENTER);
form = new Form("Calculation");
textfield1 = new TextField(null, "", 8, TextField.NUMERIC );
textfield2 = new TextField(null, "", 8, TextField.NUMERIC );
stringitem = new StringItem("Result", "");
quit = new Command("quit", Command.EXIT, 0);
ok = new Command("ok", Command.SCREEN, 0);

form.append(textfield1);
form.append(textfield2);
form.append(stringitem);
form.addCommand(ok);
form.addCommand(quit);
form.setCommandListener(this);
}
public void commandAction(Command command, Displayable displayable)
{
if (command == exit)
{
arcFilledExample.exitMIDlet();
}
}
}
این یه کد کوچیک و نمونه است اگه این دو خط رو فعال کنین

//display = Display.getDisplay(this);
//canvas = new MyCanvas23(this);
اجرا میشه و لی چیزهایی که توی paint نوشته شده نمایش نمیده فقط عکس رو نمایش میده ولی کد بالا با اون خط جایگزین صفحه میپره!

mahdi68
جمعه 15 مرداد 1389, 18:13 عصر
شما چرا از اعناصر سطح بالا تو canvas استفاده میکنیی ؟!؟!؟!
برای نمایش اعناصر سطح بالاباید از setCurrent استفاده کنید . تو canvas باید خودتون تکستباکس و ... بسازین
ضمنا

Display.getDisplay(this).setCurrent(new MyCanvas23 (this) );
//display = Display.getDisplay(this);
//canvas = new MyCanvas23(this);

خط اول همون کار خط دوم و سوم انجام میده

parnian~parnian
شنبه 16 مرداد 1389, 15:04 عصر
درسته همون کارو انجام میده اما توی مورد اول صفحه می پره . اما این زیاد مهم نیست از دومی استفاده میکنم
مشکل من سر اینه که چطوری textbox , .... رو درست کنم اونم طی 1کی 2 روز؟ یعنی مثل وقتی که button ها رو توی محیط eclipce از اول تعریف می کردیم؟ اگه این طوره pdf یا نمونه کدی ندارین که بفهمم از کجا باید شروع کنم؟

handinux
یک شنبه 17 مرداد 1389, 02:17 صبح
از APIهای آماده استفاده کنید مثل Gear - synclast-microEWT

parnian~parnian
یک شنبه 17 مرداد 1389, 14:20 عصر
از APIهای آماده استفاده کنید مثل Gear - synclast-microEWT
ممنون ازتون ولی میشه لطف کنین بیشتر توضیح بدین؟

handinux
یک شنبه 17 مرداد 1389, 14:31 عصر
توضیح بیشتر اینکه این APIها widgetهایی مثل textbox -combobox-checkbox و.. غیره رو شبیه سازی کردند.کافیه فقط ازشون استفاده کنید.به سایت هاشون برید برنامه های دمویی که هر کردوم دارند به همراه سورسشون ببینید.با چند خط کد می تونید برطرف کنید نیازتون رو

parnian~parnian
یک شنبه 17 مرداد 1389, 22:21 عصر
ممنون از راهنماییتون