0
A
回答
2
你好,這是位圖按鈕和背景顏色紅
manager=new Field(Field.FOCUSABLE){
protected void onFocus(int direction) {
super.onFocus(direction);
flag1=true;
invalidate();
}
protected void onUnfocus() {
flag1=false;
invalidate();
}
protected void layout(int width, int height) {
setExtent(image.getWidth(),image.getHeight());
}
protected void paint(Graphics graphics) {
if(flag1){
graphics.setBackgroundColor(Color.RED);
graphics.clear();
graphics.drawBitmap(0, 0, image.getWidth(),image.getHeight(), image_hover,0,0);
}else{
graphics.drawBitmap(0, 0, image.getWidth(),image.getHeight(), image,0,0);
}
}
protected boolean navigationClick(int status, int time) {
fieldChangeNotify(1);
return true;
}
};
manager.setChangeListener(this);
add(manager);
輸出如下圖像 這是背景圖像和默認背景色
manager1=new Field(Field.FOCUSABLE){
protected void onFocus(int direction) {
super.onFocus(direction);
flag2=true;
invalidate();
}
protected void onUnfocus() {
button=image;
flag2=false;
invalidate();
}
protected void layout(int width, int height) {
setExtent(image.getWidth(),image.getHeight());
}
protected void paint(Graphics graphics) {
if(flag2)
graphics.drawBitmap(0, 0, image.getWidth(),image.getHeight(), image_hover,0,0);
else
graphics.drawBitmap(0, 0, image.getWidth(),image.getHeight(), image,0,0);
}
protected boolean navigationClick(int status, int time) {
fieldChangeNotify(1);
return true;
}
};
manager1.setChangeListener(this);
add(manager1);
出把如下
全功能類以下爲更好地理解
import net.rim.device.api.system.Bitmap;
import net.rim.device.api.ui.Color;
import net.rim.device.api.ui.Field;
import net.rim.device.api.ui.FieldChangeListener;
import net.rim.device.api.ui.Graphics;
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.component.Dialog;
import net.rim.device.api.ui.container.MainScreen;
public class StartUp extends UiApplication{
public static void main(String[] args) {
StartUp up=new StartUp();
up.enterEventDispatcher();
}
public StartUp()
{
pushScreen(new Demoscreen());
}
class Demoscreen extends MainScreen implements FieldChangeListener
{
Bitmap image,image_hover;
boolean flag1,flag2;
Field manager=null,manager1=null;
public Demoscreen() {
image=Bitmap.getBitmapResource("Download_48x48.png");
image_hover=Bitmap.getBitmapResource("Download_48x48.png");
manager=new Field(Field.FOCUSABLE){
protected void onFocus(int direction) {
super.onFocus(direction);
flag1=true;
invalidate();
}
protected void onUnfocus() {
flag1=false;
invalidate();
}
protected void layout(int width, int height) {
setExtent(image.getWidth(),image.getHeight());
}
protected void paint(Graphics graphics) {
if(flag1){
graphics.setBackgroundColor(Color.RED);
graphics.clear();
graphics.drawBitmap(0, 0, image.getWidth(),image.getHeight(), image_hover,0,0);
}else{
graphics.drawBitmap(0, 0, image.getWidth(),image.getHeight(), image,0,0);
}
}
protected boolean navigationClick(int status, int time) {
fieldChangeNotify(1);
return true;
}
};
manager.setChangeListener(this);
add(manager);
manager1=new Field(Field.FOCUSABLE){
protected void onFocus(int direction) {
super.onFocus(direction);
flag2=true;
invalidate();
}
protected void onUnfocus() {
flag2=false;
invalidate();
}
protected void layout(int width, int height) {
setExtent(image.getWidth(),image.getHeight());
}
protected void paint(Graphics graphics) {
if(flag2)
graphics.drawBitmap(0, 0, image.getWidth(),image.getHeight(), image_hover,0,0);
else
graphics.drawBitmap(0, 0, image.getWidth(),image.getHeight(), image,0,0);
}
protected boolean navigationClick(int status, int time) {
fieldChangeNotify(1);
return true;
}
};
manager1.setChangeListener(this);
add(manager1);
}
public void fieldChanged(Field field, int context) {
if(field==manager)
{
displayDialog("I am first field");
}else if(field==manager1)
{
displayDialog("I am second field");
}
}
public void displayDialog(final String message)
{
UiApplication.getUiApplication().invokeLater(new Runnable() {
public void run() {
Dialog.inform(message);
}
});
}
}
}
欲瞭解更多詳情,請訪問以下鏈接,背景Background logic for 4.5 OS
1
檢查下列定製按鈕字段鏈接:
Implement advanced buttons, fields, and managers.
User Defined Buttons - Create a Custom Button From an Image
Blackberry Custom Button Field
How to create a Custom Button Field in Blackberry
通常重寫applyTheme(..)
(空實現)將刪除字段的默認樣式。此外,我們需要覆蓋paint(..)
,paintBackground(..)
,drawFocus(..)
,並根據當前焦點狀態更改其實施。以下是擴展Field以製作自定義按鈕字段的情況的代碼片段。
private final Bitmap focusedBitMap = Bitmap.getBitmapResource("focused.png");
private final Bitmap unfocusedBitmap = Bitmap.getBitmapResource("unfocused.png");
protected void paint(Graphics graphics) {
// paint background
graphics.setBackgroundColor(isFocus() ? Color.RED : Color.GREEN);
graphics.clear();
// draw button image
Bitmap myBitmap = isFocus() ? focusedBitMap : unfocusedBitmap;
if (myBitmap != null) {
// image position calculation
int imageX = 0;
int imageY = 0;
graphics.drawBitmap(imageX, imageY,
myBitmap.getWidth(), myBitmap.getHeight(),
myBitmap, 0, 0);
}
}
protected void drawFocus(Graphics graphics, boolean on) {
}
public boolean isFocusable() {
return true;
}
相關問題
- 1. 如何爲黑莓設置背景
- 2. 黑莓 - 設置字段背景圖像大小適合
- 3. 如何設置背景圖片fitable在黑莓應用
- 4. 如何設置背景圖片在黑莓7.1
- 5. 如何讓黑莓背景變黑?
- 6. 如何設置默認的datetimepicker黑莓的背景
- 7. 如何設置按鈕的圖像背景黑莓
- 8. 如何將圖像設置爲黑莓背景
- 9. 如何滾動多個標籤字段在黑莓4.5
- 10. 如何透明背景設定在的LabelField黑莓
- 11. 黑莓背景圖片?
- 12. 如何設置黑色背景
- 13. 如何更改黑莓中對象選擇字段的背景顏色?
- 14. 改變黑莓ButtonField字段的背景顏色
- 15. 有沒有辦法設置黑莓的背景顏色?
- 16. 黑莓網格中的背景圖片
- 17. 在黑莓中設置多種字體
- 18. 黑莓 - 在屏幕上設置字段的位置?
- 19. 背景大小問題:100%在黑莓
- 20. 黑莓4.5 - 如何點擊.jpg圖像?
- 21. 黑莓APN設置
- 22. 如何在黑莓中將字體設置爲LabelField文本?
- 23. 背景黑莓UI應用程序
- 24. 背景圖像黑莓圖像
- 25. 黑莓圖像背景重複
- 26. 黑莓背景聽衆線程
- 27. 在黑莓背景屏幕底部放置按鈕
- 28. 如何設置黑莓屏幕
- 29. 在黑莓中選中時更改按鈕的背景顏色
- 30. 爲片段設置背景?
這是您的自定義按鈕? – BBdev 2012-01-05 03:53:39
您是否使用任何圖像到該位圖? – alishaik786 2012-01-05 04:40:50
雅作品!謝謝!! – 2012-01-05 19:56:20