gpt4 book ai didi

java - 对使用 Helper 类感到困惑

转载 作者:行者123 更新时间:2023-12-01 13:16:31 26 4
gpt4 key购买 nike

我正在尝试使用辅助类来获得更简洁的代码。但我现在有点困惑。让我首先向您展示我的代码:

这是我的助手类代码(用于缩放位图的代码):

public class Helper {
public static void decodeFile(String filePath) {

// Decode image size
BitmapFactory.Options o = new BitmapFactory.Options();
o.inJustDecodeBounds = true;
BitmapFactory.decodeFile(filePath, o);

// The new size we want to scale to
final int REQUIRED_SIZE = 2048;

int width_tmp = o.outWidth, height_tmp = o.outHeight;
int scale = 1;
while (true) {
if (width_tmp < REQUIRED_SIZE && height_tmp < REQUIRED_SIZE)
break;
width_tmp /= 2;
height_tmp /= 2;
scale *= 2;
}

BitmapFactory.Options o2 = new BitmapFactory.Options();
o2.inSampleSize = scale;
Bitmap bmp = BitmapFactory.decodeFile(filePath, o2);


}

这就是我想使用该函数的地方:

public void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);

if (requestCode == GALLERY_PICTURE) {
if (resultCode == RESULT_OK) {


Uri selectedImage = data.getData();
String[] filePathColumn = {MediaStore.Images.Media.DATA};

Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
if (cursor != null) {
cursor.moveToFirst();

int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String filePath = cursor.getString(columnIndex);
cursor.close();


Helper.decodeFile(filePath);

img_logo.setImageBitmap(bmp);

settings = getSharedPreferences("pref", 0);
Editor prefsEditor = settings.edit();
prefsEditor.putString("photo1", filePath);
prefsEditor.commit();
}

但我的问题是当它要在我的 ImageView (img_logo)中显示位图时,它不显示照片而只显示空白页面。

我知道问题出在 helper 的最后一行(bmp 的位置),但我不知道该怎么办。

最佳答案

您当前没有返回辅助类加载的位图 - 您正在这一行创建它:

Bitmap bmp = BitmapFactory.decodeFile(filePath, o2);

但是函数刚刚退出,所以位图就被忘记了。您需要将其返回给调用它的函数,以便它可以显示在应用程序中:

bmp = Helper.decodeFile(filePath);

img_logo.setImageBitmap(bmp);

关于java - 对使用 Helper 类感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22426915/

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