亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        J2ME程序手機(jī)屏幕分辨率自適應(yīng)研究

        2011-01-20 06:49:34曹郁輝
        關(guān)鍵詞:程序

        曹郁輝

        (十堰職業(yè)技術(shù)學(xué)院黨委工作部,湖北十堰442000)

        J2ME(JAVA 2 Micro Edition)是為手機(jī)等消費(fèi)類電子產(chǎn)品開發(fā)程序的JAVA語言平臺,用它開發(fā)的程序可以不受設(shè)備的操作系統(tǒng)類型的限制。無論是Symbian、Microsoft windows、Android、Linux操作系統(tǒng)的智能手機(jī)還是不帶操作系統(tǒng)的非智能手機(jī),大都支持J2ME開發(fā)的程序的運(yùn)行。因此J2ME開發(fā)的程序有很強(qiáng)的適應(yīng)性和較長的生命力[1]。然而,近些年來,手機(jī)硬件的發(fā)展日新月異,無論是從手機(jī)CPU的速度、內(nèi)存的大小、各種傳感器的應(yīng)用和新型顯示技術(shù)的應(yīng)用都有非常大的發(fā)展。而很多J2ME開發(fā)的程序沒有考慮到這些發(fā)展變化而影響了這些程序的廣泛應(yīng)用。例如隨著手機(jī)顯示屏尺寸逐漸增大,分辨率逐漸增加,很多采用J2ME編寫的軟件由于采用固定分辨率,造成在較新型號手機(jī)上使用不便,甚至無法使用,大大縮短了軟件的生命力。本文將討論J2ME軟件編程時適應(yīng)各種手機(jī)顯示屏分辨率的問題。

        一、J2ME程序手機(jī)屏幕分辨率自適應(yīng)

        所謂J2ME程序手機(jī)屏幕分辨率是指無論在何種手機(jī)顯示屏的分辨率下,程序都能自動調(diào)整,按照最適合當(dāng)前分辨率的模式來顯示程序運(yùn)行的人機(jī)界面。市場上現(xiàn)有的手機(jī),顯示分辨率從相對低端的176×144像素到高端的iphone手機(jī)的960×640像素,相差是比較大的,而且還不斷有顯示屏尺寸更大、分辨率更高的手機(jī)推出,比如在本文寫作過程中,已經(jīng)有了分辨率為1280×720的手機(jī)。如果你希望自己編寫的程序在這些機(jī)器中都能很好地運(yùn)行,那么在編程的時候就應(yīng)該考慮到,程序當(dāng)中的界面,都能夠適應(yīng)各種不同的手機(jī)顯示屏的分辨率。

        要實(shí)現(xiàn)這種分辨率自適應(yīng),在使用J2ME編程的時候要考慮這樣幾點(diǎn):(1)手機(jī)屏幕上顯示的文字。(2)在程序當(dāng)中,利用JAVA函數(shù)繪制的圖形。(3)程序當(dāng)中使用的外部圖像文件。其中程序當(dāng)中使用外部圖像文件是最復(fù)雜,也是我們要重點(diǎn)考慮的。

        手機(jī)屏幕上顯示的文字在使用J2ME編程時是可以通過字號的設(shè)置控制其大小的。同時,同一個字號的文字會隨著手機(jī)屏幕尺寸的增大顯示得大一些。因此,文字在不同分辨率下顯示時,矛盾并不突出。

        在手機(jī)屏幕上顯示的一些簡單圖形,如點(diǎn)、線、圓、矩形等,使用J2ME編程時可以利用現(xiàn)成的JAVA函數(shù)來進(jìn)行繪制。繪制時,首先要規(guī)劃好顯示屏上顯示的所有圖形,它們相對于顯示屏的大小以及圖形間的相對位置。按照顯示屏的比例來繪制圖形,無論顯示屏的分辨率如何改變,顯示的圖形也會隨之而改變,能比較好地顯示出來不變形。

        由于利用JAVA函數(shù)繪制的圖形有相當(dāng)?shù)木窒扌?只能畫簡單圖形,不能勝任畫面比較復(fù)雜的情況,所以很多時候我們不得不使用外部的圖像文件。J2ME程序當(dāng)中使用的外部圖像文件都是點(diǎn)陣圖像文件,它的特點(diǎn)是像素的數(shù)目是固定的,如果屏幕的分辨率發(fā)生變化,圖像本身是不變的。對于這種圖像,要想使之適應(yīng)屏幕分辨率的變化,我們要根據(jù)屏幕分辨率的大小對圖像進(jìn)行適當(dāng)?shù)目s放。JAVA里沒有圖像縮放函數(shù),要靠用戶自己編寫。

        二、分辨率自適應(yīng)的實(shí)現(xiàn)方法

        1.利用JAVA函數(shù)繪制簡單圖形

        下面是一個繪制屏幕上菜單選項(xiàng)的程序,菜單由簡單的矩形構(gòu)成:

        LABELS.length為菜單項(xiàng)的數(shù)目,prefer-Width和preferHeight根據(jù)字體大小由另一個函數(shù)得出??梢钥闯?程序中所繪制的圖形大小不是絕對值,會隨著屏幕的大小變化而變化,能夠適應(yīng)不同手機(jī)顯示屏的分辨率。

        2.使用外部圖像文件

        在使用外部圖像文件時,設(shè)計(jì)一個好的縮放函數(shù)很重要。下面給出一個圖像縮放函數(shù)的例子:

        函數(shù)說明:輸入?yún)?shù)src為原始圖像,destW為目標(biāo)圖像的寬,dest H為目標(biāo)圖像的高。在給出了原始圖像后,該函數(shù)按照逐點(diǎn)繪制的方式,按指定的寬和高生成新圖像。該函數(shù)在每次加載圖像后使用,按照重新計(jì)算所得的destW和dest H來完成圖像的縮放。該函數(shù)的優(yōu)點(diǎn)是:可以保持原圖像的透明度信息;缺點(diǎn)是:沒有插值運(yùn)算,放大后會產(chǎn)生比較明顯的失真。

        使用外部圖像在程序設(shè)計(jì)時還要首先設(shè)定一個基準(zhǔn)的分辨率,也就是該程序當(dāng)中的圖像最適合顯示的分辨率是多少。比如一個程序當(dāng)中的所有圖像最初設(shè)計(jì)時是為了在240×320的分辨率下顯示的,那么在屏幕分辨率為176×144的手機(jī)上顯示就應(yīng)該縮小,在屏幕分辨率為320×480的手機(jī)上顯示就應(yīng)該放大,這樣就適應(yīng)了屏幕的變化。這個基準(zhǔn)分辨率是程序設(shè)計(jì)人員在編程時根據(jù)需要來進(jìn)行選擇的,這個程序主要用在哪個分辨率的機(jī)型上,就可以選擇哪個分辨率。如果沒有特定對象,可以選擇用戶使用最普遍的顯示屏的分辨率。

        三、要注意的事項(xiàng)

        在對圖像進(jìn)行縮放時要注意,在J2ME使用的圖像中,有些是作為平鋪貼圖使用的。所謂平鋪貼圖,是為了實(shí)現(xiàn)特定的紋理,將一張大圖分割成一塊塊大小相同的小圖像,小圖像在使用時可以任意拼接。J2ME定義,作為平鋪貼圖的大圖像的寬必須是小圖像寬的整數(shù)倍,如果不是的話,在設(shè)定貼圖時就會出錯。在基準(zhǔn)分辨率下滿足條件的平鋪貼圖,如果經(jīng)過縮小操作,由于小數(shù)部分舍入的原因,可能會出現(xiàn)問題。比如我們在編程時選擇的基準(zhǔn)分辨率是320×480,用于平鋪貼圖的大圖的寬是300像素,小圖的寬是50像素,如果當(dāng)前手機(jī)顯示屏的分辨率是240×320,那么平鋪貼圖就要進(jìn)行縮小操作。如果直接按比例進(jìn)行縮小,所得的平鋪貼圖大圖寬(即destW)為225像素,小圖寬38像素,大圖寬不是小圖寬的整數(shù)倍,顯而易見,設(shè)定貼圖時就會出錯。為避免這種情況的發(fā)生,程序當(dāng)中要有容錯語句,可以先算出縮小后的小圖的寬度,再用倍數(shù)去乘,得到大圖的寬度。在縮放函數(shù)中使用這樣倒推后得到的平鋪貼圖縮小后的寬度(即destW),就不會出錯了。在這個例子中,我們算得小圖的寬為38像素,大圖的寬是小圖的6倍,因此,縮放程序中的destW應(yīng)該是38*6=228像素。

        為適應(yīng)顯示屏分辨率的變化對圖像進(jìn)行縮放時還要注意顯示屏的長寬比,不同分辨率的手機(jī)顯示屏,它們的長寬比例是不一樣的。如分辨率為240 ×320的顯示屏,長寬比是3∶4;而分辨率為320× 480的顯示屏長寬比是2∶3。在分辨率為240× 320的顯示屏上全屏顯示的圖形,在分辨率為320× 480的顯示屏上全屏顯示時會有些變形。如果這種變形我們可以容忍,我們就不要管它,如果這種變形嚴(yán)重地影響了圖像的真實(shí)性,或者不被允許,那么我們在縮放圖像時就要按照原始的基準(zhǔn)分辨率的長寬比來縮放圖像。比如,在分辨率為240×320的顯示屏上全屏顯示的圖像,如果保持長寬比,在分辨率為320×480的顯示屏上顯示的小大為320×426像素,這樣顯示才不會變形,但是在屏幕上會留有空白。

        在進(jìn)行程序設(shè)計(jì)時,也應(yīng)當(dāng)注意,對于圖像適應(yīng)顯示屏分辨率的變化在實(shí)際使用過程當(dāng)中也是有局限的?,F(xiàn)有的手機(jī)顯示屏大小差別比較大。適合某一個分辨率的圖像如果過分縮小會難以分辨,如果過分放大又會出現(xiàn)失真。如果想讓自己的手機(jī)程序做到分辨率自適應(yīng),一開始選擇一個適當(dāng)?shù)幕鶞?zhǔn)分辨率也是非常重要的,有時候也要作出一點(diǎn)犧牲,干脆只針對特定的用戶群,放棄對某些分辨率的支持,如不對低端的或不對特別高端的手機(jī)屏幕進(jìn)行支持,或針對低端的手機(jī)、高端的手機(jī)分別推出不同的程序。

        [1]Kim Tople.J2ME技術(shù)手冊[M].北京:中國電力出版社,2003:13.

        猜你喜歡
        程序
        給Windows添加程序快速切換欄
        電腦愛好者(2020年6期)2020-05-26 09:27:33
        試論我國未決羈押程序的立法完善
        失能的信仰——走向衰亡的民事訴訟程序
        “程序猿”的生活什么樣
        英國與歐盟正式啟動“離婚”程序程序
        基于VMM的程序行為異常檢測
        偵查實(shí)驗(yàn)批準(zhǔn)程序初探
        我國刑事速裁程序的構(gòu)建
        創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
        恐怖犯罪刑事訴訟程序的完善
        久久婷婷色综合一区二区| 加勒比东京热中文字幕| 亚洲乱码中文字幕久久孕妇黑人| 亚洲第一网站免费视频| 国产产区一二三产区区别在线| 国产亚洲av人片在线观看| 国产丝袜免费精品一区二区| 日韩人妻高清福利视频| 国产精品亚洲精品一区二区| 老鲁夜夜老鲁| 亚洲第一av导航av尤物| 亚洲AV一二三四区四色婷婷| 一区二区中文字幕蜜桃 | 欧美午夜理伦三级在线观看| a级大胆欧美人体大胆666| 精品久久久久久久中文字幕| 亚洲一区二区精品久久岳| av在线免费观看男人天堂| 亚洲日韩精品一区二区三区| 免费av片在线观看网站| 亚洲αⅴ无码乱码在线观看性色| 久久久9色精品国产一区二区三区 国产三级黄色片子看曰逼大片 | 日本区一区二区三视频| 免费无遮挡禁18污污网站| 色欲aⅴ亚洲情无码av蜜桃| 欧美人与动zozo| 中文字幕一区二区在线| 日韩精品在线观看在线| 四川发廊丰满老熟妇| 久久99欧美| 国产成人无精品久久久| 午夜av福利亚洲写真集| 婷婷久久av综合一区二区三区| 国产av无码专区亚洲版综合| 鸭子tv国产在线永久播放| 亚洲av无码成人黄网站在线观看 | 国产麻无矿码直接观看| 日本av一区二区播放| 福利视频偷拍一区二区| 婷婷射精av这里只有精品| 久久艹影院|