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

プロジェクトでアプリケーション全体の Utils クラスを作成します。decodeFile(File f) メソッドを public static メソッドとして追加できます: public static Bitmap decodeFile(File f) は、プロジェクト全体で必要になる可能性のあるその他のユーティリティ メソッドと一緒に使用できます。

于 2013-05-01T15:32:03.813 に答える
1

方法の 1 つは、関数を public static にしてから、クラス名を次のように使用してアクティビティでアクセスすることです。

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 に答える