偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

BlackBerry應用開發(fā)者指南 UI API篇之管理UI組件

移動開發(fā)
本文為《BlackBerry應用開發(fā)者指南 UI API篇之管理UI組件》,我們將介紹如何管理UI組件。使用 BlackBerry API 布局管理器來安排屏幕上的組件。

 我們承接前文《UI API篇之顯示UI組件》,本文我們將介紹如何管理UI組件。

管理UI組件

管理布局

使用 BlackBerry API 布局管理器來安排屏幕上的組件。

下面四個類擴展了 Manager 類,以提供預定義的布局管理器:

◆VerticalFieldManager

◆HorizontalFieldManager

◆FlowFieldManager

◆DialogFieldManager

MainScreen 和 FullScreen 缺省的都使用了一個 VerticalFieldManager。僅為這些類定義一個布局管理器實例提供了不同的布局。

注:為了創(chuàng)建一個定制的布局管理器,請擴展 Manager。

為一個指定的 Screen 實例定義布局管理器,完成下面的操作:

◆實例化合適的 Manager 子類。

◆加入 UI 組件到布局管理器中。

◆加入布局管理器到屏幕中。

代碼

Manager 類定義了多個系統(tǒng)樣式的常數(shù),這些系統(tǒng)樣式定義了如滾動和對齊的行為。當創(chuàng)建布局管理器時,使用這些樣式作為參數(shù)。

垂直組織 field

VerticalFieldManager 垂直地組織 field。所有 field 在一新地線(line)上開始。為了可以垂直滾動,提供 Manager.VERTICAL_SCROLL 參數(shù)。

代碼

缺省地,BitmapField 對象在 VerticalFieldManager 中是左對齊的。

水平組織 field

HorizonFieldManager 水平組織field。為了可以水平滾動,提供Manager.HORIZONTAL_SCROLL 樣式。如果沒有包含 HORIZONTAL_SCROLL 參數(shù),field 水平排列他們自己,可能會超出屏幕寬度,但是用戶不能滾動到超出屏幕右邊的內(nèi)容。

BlackBerry 設備沒有顯示水平滾動指示器或滾動條。

代碼

水平垂直組織 Field

FlowFieldManager 先水平組織 field,然后再垂直組織。先水平組織 Field,直到?jīng)]有足夠空間放另外一個 field,然后管理器在下一行上水平的安排它們。首頁屏幕(Home Screen)就是一個 FlowFieldManager 的例子。

代碼

指定一個 PopupScreen的布局

DialogFieldManager 指定了 PopupScreen 對象的布局。它管理了一個圖標,一個消息,以及一列定制的 field 的布局。圖標和消息相互靠近的出現(xiàn)在布局上方,定制的 field出現(xiàn)在消息的下方。這個布局是 PopupScreen 對象的標準布局。為了創(chuàng)建定制的對話框,擴展 DialogFieldManager。

代碼

缺省地,BitmapField 對象在 VerticalFieldManager 中是左對齊的。

水平組織 field 

HorizonFieldManager水平組織field 。 為了可以水平滾動,提供Manager.HORIZONTAL_SCROLL 樣式。如果沒有包含 HORIZONTAL_SCROLL 參數(shù),field 水平排列他們自己,可能會超出屏幕寬度,但是用戶不能滾動到超出屏幕右邊的內(nèi)容。BlackBerry 設備沒有顯示水平滾動指示器或滾動條。

水平垂直組織 Field

FlowFieldManager 先水平組織 field,然后再垂直組織。先水平組織 Field,直到?jīng)]有足夠空間放另外一個 field,然后管理器在下一行上水平的安排它們。首頁屏幕(Home Screen)就是一個 FlowFieldManager 的例子。

指定一個PopupScreen的布局

DialogFieldManager 指定了 PopupScreen 對象的布局。它管理了一個圖標,一個消息,以及一列定制的 field 的布局。圖標和消息相互靠近的出現(xiàn)在布局上方,定制的 field出現(xiàn)在消息的下方。這個布局是 PopupScreen 對象的標準布局。為了創(chuàng)建定制的對話框,擴展 DialogFieldManager。#p#

管理UI交互

一個時間只有一個線程(通常是事件調(diào)配線程)可以得到 UI 的訪問權。通過下列方式,背后(Background)線程也可從主事件處理或 UI 繪制代碼的外部訪問 UI:

◆獲取并保持事件鎖。

◆使用 invokeLater()或 invokeAndWait()在事件調(diào)配線程上運行。

獲取并保持事件鎖

當它處理一個消息時,事件調(diào)配者在事件線程上設置一個事件鎖。在沒有打斷事件調(diào)配者處理的情況下,背后線程(也就是,非事件調(diào)配線程)在短事件內(nèi)通過獲取這個鎖可以訪問UI。

為了得到事件鎖,調(diào)用 Application.getEventLock()。和這個對象同步,序列化訪問 UI。在短期內(nèi)保持這個鎖,因為鎖會暫停事件調(diào)配者。一個應用程序應該永遠不要在 EventLock 對象上調(diào)用 notify()或 wait()。

代碼

在事件調(diào)配線程上運行如果保持事件鎖不合適,創(chuàng)建一個實現(xiàn) Runnable 接口的類。在事件調(diào)配者上通過下面的 3種方法之一調(diào)用它的 run()方法:

◆調(diào)用 invokeAndWait(Runnable),以致在事件調(diào)配線程上立即調(diào)用 run()。這個調(diào)用會阻塞直到 run()完成為止。

◆調(diào)用 invokeLater(Runnable),以致在所有等候的事件處理后,在事件調(diào)配線程上調(diào)用run()。

◆調(diào)用 invokeLater(Runnable,long,boolean)以致在某一指定時間后,事件調(diào)配線程上調(diào)用 run()。在這里,在將 Runnable 加入到事件隊列之前,時間指定了等待時間的長短。如果 repeat 為 true,每隔 time 毫秒后,Runnable 加入到事件隊列中。#p#

管理前臺事件

系統(tǒng)調(diào)用 Application.activate()將應用程序帶到前臺。

大多數(shù)的應用程序不需要重寫 activate()。應用程序應該完成應用程序構造子的任何初始化,包括任何必需的 UiApplicaiton.pushScreen()調(diào)用.因為對同一個應用程序,activate()能夠調(diào)用多次,因此在在這個方法中,應用程序不應該完成一次初始化。

當帶到前臺時,應用程序可以覆寫 activate()方法完成其他的附加處理。如果覆寫了 activate(),在方法的定義里調(diào)用 super.activate(),以致應用程序能正確得重繪。

管理繪圖區(qū)域

使用 XYRect對象

Graphics 對象代表了應用程序可用的整個繪圖表面。為了界定這個區(qū)域,將它分為多個XYRect 對象。XYRect 在圖形上下文(graphics context)的頂端創(chuàng)建一個矩形區(qū)域、一個XYRect 對象有 2 個 XYPoint 對象組成。***個 XYPoint 對象代表了 XYRect 左上方的坐標,第二個 XYPoint 對象代表了右下方的坐標。每個 XYPoint 代表了一個由 X,Y 坐標構成的屏幕的坐標。

代碼

Rectangle 對象將 XYRect 對象的上下文繪制區(qū)域界定為(10,10)與(50,50)之間的區(qū)域。為了開始對 XYRect 對象進行繪圖調(diào)用,調(diào)用 pushContext()或 pushRegion( );

當開始用 pushContext()進行繪圖調(diào)用時,指定區(qū)域原點不要調(diào)整繪圖偏移(Drawingoffset)。

代碼

當你首先調(diào)用 pushRegion()來調(diào)用繪圖方法時,區(qū)域源(Region Origin)需調(diào)整繪圖偏移,左上方的 XYPoint 對象代表了區(qū)域源。所有繪圖都通過這個數(shù)來偏移。

在下面的例子中,pushContext()將 XYRect 對象的 10 個象素位放到右邊,10 個放在下方。區(qū)域源調(diào)整了繪圖偏移(XYPoint topLeft =  new  XYPoint(10, 10)).

代碼

旋轉(Invert)個區(qū)域

旋轉一個 Graphics 對象上的一個區(qū)域,它保留像素,只是轉化像素值的位(也就是 0 變?yōu)?,1 變?yōu)?0)。大多數(shù) field 使用旋轉來表示焦點,盡管這樣,你可以為定制的 field 創(chuàng)建你自己的焦點行為。

為了旋轉 Graphics 對象的任何一個區(qū)域,提供坐標或者旋轉一個指定的 XYRect 對象。指定Graphics 對象的一個區(qū)域,并且壓入棧中。在調(diào)用 pushContext()或 pushRegion()后,提供Graphics 對象的一個區(qū)域來旋轉。

代碼

轉化(Translate) 一個區(qū)域

為了將一個 Graphics 上下文上的區(qū)域移動到另外一個地方。調(diào)用 invoke()。

代碼

XYRect 將點(1,1)轉化為(20,20,)。轉 化 后 ,XYRect 的底部擴展了過去圖形上下文的范圍,并且重合了。

【編輯推薦】

  1. BlackBerry應用開發(fā)者指南 UI API篇之顯示UI組件
  2. 在BlackBerry設備上使用Java及應用程序控制
  3. BlackBerry應用開發(fā)者指南基礎附錄 .alx文件
  4. BlackBerry應用開發(fā)者指南 選項API
  5. BlackBerry應用開發(fā)者指南 PIM API
責任編輯:佚名 來源: 管理UI組件/網(wǎng)絡整理
相關推薦

2011-04-14 10:03:32

UI組件BlackBerry

2011-04-14 10:34:08

BlackBerry

2011-04-13 09:55:16

Mail APIBlackBerry

2011-04-13 13:38:57

選項APIBlackBerry

2011-04-13 11:31:06

PIM APIBlackBerry

2011-04-02 13:44:08

2011-04-15 14:22:20

圖片操作UIBlackBerry

2011-04-15 16:05:00

監(jiān)聽UI對象的改變BlackBerry

2011-04-13 14:10:27

.alx文件BlackBerry

2010-05-22 16:57:09

BlackBerry開

2009-03-24 08:51:30

YUIJavaJavascript

2010-04-02 17:45:22

Black Berry

2022-01-17 19:34:43

SentryWeb APISentry API

2011-04-18 11:00:34

使用音頻BlackBerry

2018-01-01 20:56:43

AndroidUIAPI

2011-07-19 09:51:32

性能優(yōu)化Designing FAndroid

2021-01-25 09:58:01

鴻蒙HarmonyOS應用開發(fā)

2012-03-31 16:35:53

Metro UIAndroid

2011-06-05 11:13:35

HTCSense UI

2011-06-07 09:10:41

BlackBerry 開發(fā)
點贊
收藏

51CTO技術棧公眾號