Тут писали, что размер дисплея получается так:
w = FW.CD.getWidth;
h = FW.CD.getHeight;
Не работает:
cannot find symbol
symbol : variable getHeight
location: class javax.microedition.lcdui.Displayable
h=FW.CD.getHeight-y*2;
^
- - -
Добавил позже:
Долго же я сам до истины допирал =) Оказывается, надо писать так:
w = FW.CD.getWidth();
h = FW.CD.getHeight();
Со скобочками.
- - -
What eto da...
Взгляните сюда. Написал либу. Класс содержит два метода. Первый - init - Высчитывает по специальной формуле размер окошка и создаёт два полупрозрачных чёрных объекта типа Image (рисунка, грубо говоря). Второй - frame - Рисует эти полупрозрачные рисунки на канвасе в четырёх местах таким образом, что получается как бы полупрозрачная рамка.
import javax.microedition.lcdui.*;
public class Lib_ramka{
// ***********************************
public static int x,y,w,h;
public static Image a1,a2,bg;
public static Graphics g=M.G;
public static Displayable d=FW.CD;
// ***********************************
public static void init(){
x=(d.getWidth()*6)/100;
w=d.getWidth()-x*2;
y=(d.getHeight()-(w*86)/100)/2;
if(y<x)y=x;
h=d.getHeight()-y*2;
int p[]=null;
p=new int[x*d.getHeight()];
for(int i=0;i<p.length;i++)
p[i]=0xbb000000;
a1=Image.createRGBImage(p,x,d.getHeight(),true);
p=new int[w*y];
for(int i=0;i<p.length;i++)
p[i]=0xbb000000;
a2=Image.createRGBImage(p,w,y,true);
}
// ***********************************
public static void frame(){
g.drawImage(a1,0,0,g.LEFT|g.TOP);
g.drawImage(a1,d.getWidth(),0,g.RIGHT|g.TOP);
g.drawImage(a2,x,0,g.LEFT|g.TOP);
g.drawImage(a2,x,d.getHeight(),g.LEFT|g.BOTTOM);
}
// ***********************************
}
В эмуляторе работает. На моём сименсе С75 - нет. Кто подскажет, в чём дело? Ничего не зависает, просто рамочка не рисуется, мидлет дальше без неё выполняется...