1

背景画像が表示されている次のコードをここに記述しましたが、画像は背景全体をカバーしていませんでした

private Bitmap background;
    int mWidth = Display.getWidth();
    int mHeight = Display.getHeight();

    public MyScreen()
    {        
        // Set the displayed title of the screen  
        //backgroundBitmap = Bitmap.getBitmapResource("slidimage.png");
        final Bitmap background = Bitmap.getBitmapResource("slidimage.png");

        HorizontalFieldManager vfm = new HorizontalFieldManager(USE_ALL_HEIGHT | USE_ALL_WIDTH) {
               public void paint(Graphics g) {
                    g.drawBitmap(0, 0,mWidth, mHeight, background, 0, 0);
                    super.paint(g);
               }
        };

        add(vfm);
4

1 に答える 1

0
public static Bitmap resizeBitmap(Bitmap image, int width, int height)
    {   
        int rgb[] = new int[image.getWidth()*image.getHeight()];
        image.getARGB(rgb, 0, image.getWidth(), 0, 0, image.getWidth(), image.getHeight());        
        int rgb2[] = rescaleArray(rgb, image.getWidth(), image.getHeight(), width, height);
        Bitmap temp2 = new Bitmap(width, height);        
        temp2.setARGB(rgb2, 0, width, 0, 0, width, height);        
        return temp2;
    }

You can use the above method to resize the image just pass the image to be resized and its width and height . and the function will return the resized image .

where rescale Array is the below method

private static int[] rescaleArray(int[] ini, int x, int y, int x2, int y2)
    {
        int out[] = new int[x2*y2];
        for (int yy = 0; yy < y2; yy++)
        {
            int dy = yy * y / y2;
            for (int xx = 0; xx < x2; xx++)
            {
                int dx = xx * x / x2;
                out[(x2 * yy) + xx] = ini[(x * dy) + dx];
            }
        }
        return out;
    }
于 2012-12-26T13:47:24.577 に答える