View Full Version : تصویر زمینه در برنامه های موبایل
parnian~parnian
چهارشنبه 16 اسفند 1391, 23:53 عصر
سلام دوستان
چند تا سوال داشتم ازتون :
1. چطوری می تونم تو برنامه های موبایلم تصویر یا رنگ پیش زمینه بذارم تصویری که زیر نوشته هام باشه؟
2. رنگ ابزار ها رو چطوری باید تغییر بدم؟ خوب تو برنامه های عادی جاوا تو نتبینز اینکار راحت انجام میشه
3. چطوری تنظیم کنم که کلیه نوشته های فارسیم از راست به چپ باشه؟
ممنون از همتون :)
parnian~parnian
جمعه 18 اسفند 1391, 09:14 صبح
دوستای عزیزممممم کسی نیست راهنماییم کنه ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ حتی یه راهنمایی کوچولو :ناراحت: :افسرده:
shopingserver
چهارشنبه 30 اسفند 1391, 19:58 عصر
کسی نیست اینو یاد بده :(
parnian~parnian
یک شنبه 19 خرداد 1392, 22:13 عصر
دوستای عزیزم من هنوز این سوال رو دارم می دونم راهش با نوشتن canvas هست ولی دقیقا نمیدونم می شه لطف بفرمایین پاسخ بدین؟؟؟؟؟ :افسرده: :گریه:
spiderman200700
پنج شنبه 23 خرداد 1392, 11:52 صبح
باید یه کلاس بسازی که از canvas مشتق بشه ، بعدش توی متد paint یه عکس یا مربع به اندازه ابعداد صفحه رسم کنید. و در MIDlet یه Object از اون کلاس بسازید , و با setCurrent اونو به عنوان صفحه پیشفرض قرار بدید.
البته باید دقت داشته باشید که موقع استفاده از canvas ، شما باید همه کنترل ها و چیزایی رو که میخواید رو خودتون روی صفحه رسم کنید و رویداد های همه نقاط صفحه رو خودتون مدیریت کنید.
اگه مشکلی هست بفرمایید
parnian~parnian
پنج شنبه 23 خرداد 1392, 13:43 عصر
ممنون لطف داری ........... ببخشید من این چند روز امتحان داشتم نمیتونستم بیام :)
من با canvas مشکل دارم :افسرده: راستش مبتدی نیستم ولی نمی دونم چرا نمیتونم برنامه درستی بنویسم با canvas
spiderman200700
یک شنبه 26 خرداد 1392, 12:47 عصر
ممنون لطف داری ........... ببخشید من این چند روز امتحان داشتم نمیتونستم بیام :)
من با canvas مشکل دارم :افسرده: راستش مبتدی نیستم ولی نمی دونم چرا نمیتونم برنامه درستی بنویسم با canvas
ببین این بهت کمک میکنه. یه برنامه خیلی سادس که با استفاده از Canvas یه پس زمینه مشکلی و روی اون یه مستطیل آبی و روی مستطیل یه نوشته قرمز رنگ چاپ میکنه و یه Command برای خروج از برنامه هم به Canvas اضافه شده.
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
class MyCanvas extends Canvas {
public void paint(Graphics g) {
int h = this.getHeight();
int w = this.getWidth();
g.setColor(0, 0, 0);//set drawing color
g.fillRect(0, 0, h, h);
g.setColor(0, 130, 255);
g.fillRoundRect(w / 4, h / 4, w / 2, h / 2, 5, 5);
g.setColor(255, 102, 102);
g.drawString("Hello World", w / 2, h / 2, Graphics.BASELINE | Graphics.HCENTER);
}
}
/**
* @author omid
*/
public class MyCanvasDemo extends MIDlet implements CommandListener {
private Command exit = new Command("EXIT", Command.EXIT, 1);
public void startApp() {
MyCanvas myCanvas = new MyCanvas();
myCanvas.setCommandListener(this);
myCanvas.addCommand(exit);
Display.getDisplay(this).setCurrent(myCanvas);
}
public void pauseApp() {}
public void destroyApp(boolean unconditional) {}
public void commandAction(Command c, Displayable d) {
if (c == exit) {
notifyDestroyed();
}
}
}
spiderman200700
یک شنبه 26 خرداد 1392, 13:45 عصر
اینم یه Canvas برای رسم یه تصویر در پس زمینه. که توی همه گوشی ها با هر اندازه صفحه نمایشی کار میکنه.
import java.io.IOException;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
public class MyCanvas extends Canvas {
public void paint(Graphics g) {
int h = this.getHeight();
int w = this.getWidth();
try {
Image image = Image.createImage("/h.jpg");
image = Resizer.ResizeImage(image, w, h);
g.drawImage(image, 0, 0, Graphics.TOP | Graphics.LEFT);
} catch (IOException ex) {
g.setColor(0, 130, 255);
g.fillRoundRect(w / 4, h / 4, w / 2, h / 2, 5, 5);
}
g.setColor(255, 102, 102);
g.drawString("Hello World", w / 2, h / 2, Graphics.BASELINE | Graphics.HCENTER);
}
}
spiderman200700
یک شنبه 26 خرداد 1392, 20:00 عصر
اینو یادم رفته بود قرار بدم :لبخند:
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
public class Resizer {
public static Image ResizeImage(Image image, int width, int height) {
int sourceWidth = image.getWidth();
int sourceHeight = image.getHeight();
Image newImage = Image.createImage(width, height);
Graphics g = newImage.getGraphics();
for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
g.setClip(x, y, 1, 1);
int dx = x * sourceWidth / width;
int dy = y * sourceHeight / height;
g.drawImage(image, x - dx, y - dy, Graphics.LEFT | Graphics.TOP);
}
}
return Image.createImage(newImage);
}
}
parnian~parnian
یک شنبه 26 خرداد 1392, 21:51 عصر
واقعاااااااااااااااااا ممنونم ازت مرسی که وقت گذاشتی :لبخندساده:
parnian~parnian
یک شنبه 26 خرداد 1392, 22:42 عصر
ببخشید من تست کردم ولی یه مشکلی هست من این دو خط کد رو
dis = Display.getDisplay(this);
dis.setCurrent(new MIDPCanvas());
اول startApp نوشتم و dis رو متغیر سراسری توی MIDLet تعریف کردم :
Display dis;
حالا مشکل اینه که کدی که گذاشتین توی پس زمینه نمایش داده نمیشه فقط اول برنامه یه لحظه کوتاه نمایش داده میشه که قابل دید نیست زیاد
spiderman200700
دوشنبه 27 خرداد 1392, 01:22 صبح
مثل این بنویس. ببین جواب میده:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
/**
* @author omid
*/
public class MyCanvasDemo extends MIDlet implements CommandListener {
private Command exit = new Command("EXIT", Command.EXIT, 1);
public void startApp() {
MyCanvas myCanvas = new MyCanvas();
myCanvas.setCommandListener(this);
myCanvas.addCommand(exit);
Display.getDisplay(this).setCurrent(myCanvas);
}
public void pauseApp() {}
public void destroyApp(boolean unconditional) {}
public void commandAction(Command c, Displayable d) {
if (c == exit) {
notifyDestroyed();
}
}
}
parnian~parnian
دوشنبه 27 خرداد 1392, 22:47 عصر
تست کردم ببین من از کدی که توی #8 نوشتین استفاده کردم ولی اصلا تصویری که به عنوان پس زمینه انتخاب شده نمایش داده نمیشه فقط یه تصویر آبی که توش با قرمز نوشته شده hello world میاد که اگه
if (midletPaused) {
resumeMIDlet ();
} else {
initialize ();
startMIDlet ();
}
midletPaused = false;
این چند خط رو نذارم توی متد pauseApp فقط همون مربع آبی با نوشته میاد دیگه هیچ کاریم نمیشه کرد اگرم بذارم این چند خطو که یه لحظه نمایش داده میشه همون مربع بعد محو میشه
spiderman200700
سه شنبه 28 خرداد 1392, 00:15 صبح
عکس h.jpg توی کدوم پوشه ی پروژت میذاری؟
باید توی src باشه.
parnian~parnian
چهارشنبه 29 خرداد 1392, 22:54 عصر
مرسی ازتون که پیگیر هستین همین کارو انجام دادم ولی نمیشه اصلن هیچ تصویری نمیاد پشت زمینش
spiderman200700
پنج شنبه 30 خرداد 1392, 09:58 صبح
این ساختار پروژه ی منه و کد ها هم همونه که به شما دادم. پروژه من کار میکنه.
105840
مطمئنید دقیقا همینه؟
parnian~parnian
پنج شنبه 30 خرداد 1392, 23:11 عصر
آره به خدا دقیقا مثل اینه ...................... وارد try میشه توی کلاس MyCanvas ولی نمیدونم چرا عکس رو نمایش نمیده بعدش میره تو catch و اون رو نمایش میده ..........:متعجب:
spiderman200700
شنبه 01 تیر 1392, 14:56 عصر
توی catch دستور ex.printStackTrace() رو بنویس،ببین چه استثنایی پیش میاد، اینجا قرار بده. امیدوارم بتونیم درستش کنیم.
parnian~parnian
شنبه 01 تیر 1392, 22:04 عصر
دوست ندارم خستتون کنم یا به زحمت بیاندازمتون ولی این exception ها اومد :
at javax.microedition.lcdui.ImmutableImage.getImageFr omStream(Image.java:971)
at javax.microedition.lcdui.ImmutableImage.<init>(Image.java:942)
at javax.microedition.lcdui.Image.createImage(Image.j ava:310)
at hello.MIDPCanvas.paint(MIDPCanvas.java:50)
at javax.microedition.lcdui.Canvas.callPaint(Canvas.j ava:1074)
at javax.microedition.lcdui.Display.repaint(Display.j ava:1566)
at javax.microedition.lcdui.Display.registerNewCurren t(Display.java:1872)
at javax.microedition.lcdui.Display.screenChange(Disp lay.java:1310)
at javax.microedition.lcdui.Display$DisplayManagerImp l.screenChange(Display.java:2961)
at com.sun.midp.lcdui.EmulEventHandler.screenChangeEv ent(EmulEventHandler.java:180)
at com.sun.midp.lcdui.DefaultEventHandler$QueuedEvent Handler.run(DefaultEventHandler.java:659)
spiderman200700
یک شنبه 02 تیر 1392, 12:40 عصر
جالبه که Exception هیچ توضیحی نداره.
به هر حال این پروژه ای که الحاق کردم. کامل اجرا میشه. شما هم امتحانش کن.
parnian~parnian
دوشنبه 03 تیر 1392, 15:15 عصر
خیلی ممنون واقعااااااااا ، دیدم عجیبه .................تنها فرقی که پروژه شما با من داره اینه که من از visual Midlet استفاده کردم آخه پروژه من پیچیدس چطوری خودم دستی همرو کنترل کنم؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ :متعجب:
spiderman200700
سه شنبه 04 تیر 1392, 00:49 صبح
بهتره از visual Midlet استفاده نکنی. و همه چیز رو خودت بنویسی. دقیقا همه چیز.
parnian~parnian
سه شنبه 04 تیر 1392, 14:36 عصر
همین کارو کردم ...................... حتی برنامه های شمارو رو واسه امتحان کردن دقیقا توی یه پروژه که خودم درست کردم کپی کردم عجیبه که نشد!!!!!!!!!!! ولی خود پروژه شما درسته، واقعا نمیدونم مشکل چیه
spiderman200700
سه شنبه 04 تیر 1392, 21:50 عصر
ممکنه مشکل از تنظیمات پلتفرم باشه.
به قسمت Properties پروژه برو و در قسمت platform چک کن که تنظیمات مثل پروژه من باشه.
ممکنه اینطوری درست بشه.
parnian~parnian
چهارشنبه 05 تیر 1392, 14:51 عصر
همرو چک کردم به خدااااااااااااااااااااااا اا همش مثل همه :( :(
spiderman200700
چهارشنبه 05 تیر 1392, 19:17 عصر
دیگه نمیدونم چی باید بگم :لبخند:
parnian~parnian
پنج شنبه 06 تیر 1392, 17:31 عصر
ببخشیدددددددددد فکر کنم کلافتون کردم .................:قهقهه:
بازم چک میکنم اگه فهمیدم مشکلو حتما پست میذارم
spiderman200700
پنج شنبه 06 تیر 1392, 22:07 عصر
موفق باشی :چشمک:
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.