gpt4 book ai didi

blackberry - 如何使用 scaleImage32() 将我的图像缩小到一半大小?

转载 作者:行者123 更新时间:2023-12-04 01:03:46 24 4
gpt4 key购买 nike

现在我有:

    EncodedImage logo = EncodedImage.getEncodedImageResource("image.png");
logo.scaleImage32(Fixed32.toFP(2), Fixed32.toFP(2));
BitmapField image = new BitmapField(logo.getBitmap());
image.setMargin(15, 15, 15, 15);
this.add(image);

它只是以正常大小显示图像。然而,logo.setScale(2) 代替 .scaleImage32(...) 工作,但它已被弃用。

使用 .scaleImage32() 来显示我的图像一半大小的正确方法是什么?

最佳答案

不幸的是,您被一个糟糕的 API 所欺骗,在我看来,这是 Java(以及所有 C 语言)的一个弱点。

您认为 scaleImage32() 正在缩放您的 logo 图像。事实并非如此。它正在返回缩放后的 logo 副本。但是,您没有对该值执行任何操作。当您确实需要 scaleImage32() 返回的缩放副本时,您使用 logo 显示在位图字段中:

EncodedImage logo = EncodedImage.getEncodedImageResource("image.png");
EncodedImage scaledLogo = logo.scaleImage32(Fixed32.toFP(2), Fixed32.toFP(2));
BitmapField image = new BitmapField(scaledLogo.getBitmap());

我再补充几点:

1) 如果您可以将您的应用程序限制在 OS 5.0 及更高版本,我 think that the scaleInto() API is easier to use

2) 这种情况就是人们对方法名称大惊小怪的原因。 RIM 为 scaleImage32() 选择了一个糟糕的名称,因为这会让您相信调用该方法的实例将被缩放。它应该被命名为 getScaledImage32(),或者类似的名称。

3) 在我不好意思承认的晦涩的编程内容 的标题下,我曾经在 Ada 中编写代码. Ada 旨在尽可能多地防止编程错误。 Ada 的特点之一是编译器将未使用的返回值视为错误。这种情况正是原因。

所以,不要对这个感到太难过:)

关于blackberry - 如何使用 scaleImage32() 将我的图像缩小到一半大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14492232/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com