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