0

我在下面的类中使用此函数,并在同一活动中调用,但代码太长,所以我想在单独的类中编写 decodeFile 函数并在我的活动中使用我是如何做到的?我如何在另一个类中编写解码函数并在我的活动中使用???

        private Bitmap decodeFile(File f) {
    try {
        // Decode image size
        BitmapFactory.Options o = new BitmapFactory.Options();
        o.inJustDecodeBounds = true;
        BitmapFactory.decodeStream(new FileInputStream(f), null, o);

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

        // Find the correct scale value. It should be the power of 2.
        int scale = 1;
        while (o.outWidth / scale / 2 >= REQUIRED_SIZE
                && o.outHeight / scale / 2 >= REQUIRED_SIZE)
            scale *= 2;

        // Decode with inSampleSize
        BitmapFactory.Options o2 = new BitmapFactory.Options();
        o2.inSampleSize = scale;
        return BitmapFactory.decodeStream(new FileInputStream(f), null, 
    o2);
    } catch (FileNotFoundException e) {
    }
    return null;
 }

在同一个活动中这样调用

    if (DataC.getCount() > 0) {
            Bitmap bitmap = decodeFile(new File(root + "/"  + 
    currentFiles[info.position].getName()));
4

2 回答 2

1

其中一种方法是将函数设为公共静态,然后在 Activity 中使用类名访问它

public class Myclass
{
    public static Bitmap decodeFile(File f) 
    { ... }
}

并假设您的班级名称MyClass将其称为

if (DataC.getCount() > 0) {
        Bitmap bitmap = MyClass.decodeFile(new File(root + "/"  + 
currentFiles[info.position].getName()));
于 2013-05-01T15:29:23.873 回答
1

在您的项目中创建一个应用程序范围的 Utils 类。您可以将 decodeFile(File f) 方法添加为公共静态方法:public static Bitmap decodeFile(File f) 以及您在整个项目中可能需要的任何其他实用程序方法。

于 2013-05-01T15:32:03.813 回答