2011-06-16 65 views
0

我剛開始學習開發黑莓應用程序,並且遇到了一些障礙。我不確定如何繞過比應用到的字段/管理器大的背景圖片。下面就來說明我的意思的圖像:blackberry 5.0 api圖像蒙版/背景圖像位置

enter image description here

到目前爲止,我已經嘗試添加一個位圖BitmapFieldAbsolutePositionManager想法,我將能夠設定絕對的大小經理,只是在它內部移動位圖字段。情況並非如此,管理只需要其內容的大小:(

我來自一個前端的web開發背景,所以我在找的東西的行爲類似於'背景位置在CSS「屬性或某種圖像掩碼

在此先感謝

! - 更新 -

這是我在那裏得到了一個代碼示例,我現在有一個自定義大小的管理器,顯示一個較大的BitmapField的塊。我只需要一種方法來移動該BitmapFie在周圍。

 
package mypackage; 

import net.rim.device.api.system.Bitmap; 
import net.rim.device.api.ui.component.BitmapField; 
import net.rim.device.api.ui.container.AbsoluteFieldManager; 

public class MyImage extends AbsoluteFieldManager { 

    protected void sublayout(int maxWidth, int maxHeight){ 
     int displayWidth = 326; 
     int displayHeight = 79; 
     super.sublayout(displayWidth, displayHeight); 
     setExtent(displayWidth, displayHeight); 
    } 

    public MyImage(){ 
     Bitmap _image = Bitmap.getBitmapResource("img.jpg"); 
     BitmapField image = new BitmapField(_image); 
     add(image); 
    } 

} 

回答

0

而不是將它作爲一個字段添加,只需將它的引用存儲在您的經理的某個地方,然後自己畫。下面是一個未經測試的例子:

public class MyManager extends VerticalFieldManager() { 
    Bitmap _bg; 
    public MyManager() { 
     _bg = Bitmap.getBitmapResource("img.jpg"); 
    } 

    protected void paint(Graphics graphics) { 
     graphics.drawBitmap(x_offset, y_offset, _bg.getWidth(), _bg.getHeight(), _bg, 0, 0); 
     super.paint(graphics); 
    } 

} 

現在,您可以只設置x_offset和Y_OFFSET到任何你想要的,它會被轉移。如果您需要弄亂管理器的大小以適應位圖,請添加:

​​

希望這有助於您!

+0

工作就像一個魅力 - 非常感謝:) – boz 2011-06-17 08:36:56