【问题标题】:Set width and height on BlackBerry BitmapField在 BlackBerry BitmapField 上设置宽度和高度
【发布时间】:2012-08-28 09:28:50
【问题描述】:

如何在 BlackBerry 中设置 BitmapField 的宽度和高度?以下代码有效,但我无法显示整个图像。显示器只显示我图像的一部分。

 BitmapField bmp = new BitmapField(connectServerForImage(ImageUrl)) {
       protected void layout(int width, int height) 
       {
          setExtent(80, 70);
       }
 };

【问题讨论】:

    标签: blackberry java-me


    【解决方案1】:

    我假设您是说您的 BitmapField 正在显示您检索到的图像裁剪?

    您希望它可以缩放,或许可以缩放到适合您的BitmapField 的大小?有很多方法可以做到这一点,但一种是在下载后调整图像大小,然后再将其提供给BitmapField:

    From this answer on resizing a Bitmap

    public static Bitmap resizeImage(Bitmap originalImage, int newWidth, int newHeight) {
        Bitmap newImage = new Bitmap(newWidth, newHeight);
        originalImage.scaleInto(newImage, Bitmap.FILTER_BILINEAR, Bitmap.SCALE_TO_FILL);
        return newImage;
    }
    

    (请注意,如果您必须支持 BlackBerry OS

    然后,使用

    Bitmap img = resizeImage(connectServerForImage(ImageUrl), 80, 70);
    BitmapField bmp = new BitmapField(img) {
           protected void layout(int width, int height) 
           {
              setExtent(80, 70);
           }
    };
    

    但是,我相信如果您实际上将Bitmap img 的大小设置为80x70,那么没有必要也将BitmapField 的范围设置为80x70。它应该默认为您提供的图像的大小。因此,您可以将代码简化为:

    BitmapField bmp = new BitmapField(img);
    

    【讨论】:

      【解决方案2】:
       int prefWidth=(30*bitmap.getWidth())/bitmap.getHeight();
       Bitmap temp=resizeBitmap(bitmap,prefWidth,30);
      

      在哪里

       private 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;
      }
      

      本支持bb os 4.5

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-06-12
        • 2020-09-01
        • 1970-01-01
        • 2013-10-22
        • 1970-01-01
        • 1970-01-01
        • 2017-04-06
        相关资源
        最近更新 更多