0

私のアプリケーションには1つありMainScreenます。この画面には多くのフィールドマネージャーが含まれてVerticalおりHorizontal、すべてのコンテンツがスクロールで正常に表示されます。

これは私のメインVerticalFieldmanagerコードです。

vfm_Main = new VerticalFieldManager()
    {
            public void paint(Graphics g)
            {
                g.setColor(Color.WHITE);
                g.drawBitmap(0,0,mybackgroundImage.getWidth(),mybackgroundImage.getHeight(),mybackgroundImage,0,0);
                                    super.paint(g);
            }
            protected void sublayout(int maxWidth, int maxHeight) 
            {
                super.sublayout(Display.getWidth(),Display.getHeight());
                setExtent(Display.getWidth(),Display.getHeight());
            }
    };

この画面には 1 つの背景画像が描画されます。この画面をスクロールしてこの画面のコンテンツ全体を表示すると、背景画像もコンテンツとともにスクロールします..そのため、背景画像はぼやけて見え、画面の下部で繰り返されます。

その画面の内容だけスクロールしたいのですが、どう実装すればいいのでしょうか..?

私はたくさん試してみましたが、それを防ぐための提案やヒットはありませんでしたか? この問題に直面している、または何か考えがある場合は、私を助けてください...

前もって感謝します !!!

4

2 に答える 2

1

次のようにする必要があります。

vfm_Main = new VerticalFieldManager()
{
            public void paint(Graphics g)
            {
                g.setColor(Color.WHITE);
                g.drawBitmap(0,0,mybackgroundImage.getWidth(),mybackgroundImage.getHeight(),mybackgroundImage,0,0);
                super.paint(g);
            }
            protected void sublayout(int maxWidth, int maxHeight) 
            {
                    super.sublayout(Display.getWidth(),Display.getHeight());
                    setExtent(Display.getWidth(),Display.getHeight());
            }
};

subver=new VerticalFieldManager(VERTICAL_SCROLL|VERTICAL_SCROLLBAR)
{
        protected void sublayout(int maxWidth, int maxHeight) 
        {
                 super.sublayout(Display.getWidth(),Display.getHeight()-3);//here we scroll the inner vertical
                 setExtent(Display.getWidth(),Display.getHeight()-3);
        }
 }
 //Write all the code here;
 subver.setpadding(1,0,0,0);
 vfm_main.add(subver);
 add(vfm_Main);

この画像のように:

縦スクロール

十分;

于 2011-11-17T11:15:57.093 に答える
0

私もかつて同じ問題に直面しました。このように2つのフィールドマネージャーを使用して修正しました。

VerticalFieldManager mainManager = new VerticalFieldManager(Manager.NO_VERTICAL_SCROLL | Manager.NO_VERTICAL_SCROLLBAR )
    {

        public void paint(Graphics graphics)
        {
            graphics.clear();
            graphics.drawBitmap(0, 0, Display.getWidth(), Display.getHeight(), backgroundBitmap, 0, 0);                       
            super.paint(graphics);
        }            
    };
  //this manager is used for adding the componentes
    VerticalFieldManager subManager = new VerticalFieldManager(Manager.VERTICAL_SCROLL | Manager.VERTICAL_SCROLLBAR )
    {
        protected void sublayout( int maxWidth, int maxHeight )
        {
            int displayWidth = Display.getWidth();
            int displayHeight = Display.getHeight();

            super.sublayout( displayWidth, displayHeight);
            setExtent( displayWidth, displayHeight);
        }
    };
于 2011-11-18T12:48:57.297 に答える