如何在单独的类中编写函数并在活动中使用

时间:2013-05-01 15:23:26

标签: android

我在下面的类中使用此函数在相同的活动中并且也在相同的活动中调用但是代码太冗长所以我想在seprate类中编写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()));

2 个答案:

答案 0 :(得分:1)

其中一种方法是将函数设置为public static,然后使用classname作为

在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()));

答案 1 :(得分:1)

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