0

こんにちは、画像をカスタム クラスにロードしようとしています。このクラスは現在、内部リソース画像の int ID を使用していますが、ギャラリーまたは写真画像も使用するオプションが必要です。

これは、内部リソース イメージを使用してビューを作成する現在のコードです。

 public TouchExampleView(Context context, AttributeSet attrs, int defStyle, int pic) {
        super(context, attrs, defStyle);
        Log.i(TAG, "pic before: "+pic);
        if (pic ==0) pic = getResources().getIdentifier("ic_launcher" , "drawable", "com.example.testimage");
        Log.i(TAG, "pic afgter: "+pic);
        //mIcon = context.getResources().getDrawable(R.drawable.testpic);
        mIcon = context.getResources().getDrawable(pic);

        mIcon.setBounds(0, 0, mIcon.getIntrinsicWidth(), mIcon.getIntrinsicHeight());

        mDetector = VersionedGestureDetector.newInstance(context, new GestureCallback());
    }

上記のコードで「pic」を使用して、内部リソース ID を渡すことができることがわかります。ただし、ここに示すように、メディアストアから取得した ID を使用したいと思います。

final String[] imageColumns = { MediaStore.Images.Media._ID, MediaStore.Images.Media.DATA };
                final String imageOrderBy = MediaStore.Images.Media._ID+" DESC";
                Cursor imageCursor = managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, imageColumns, null, null, imageOrderBy);
                if(imageCursor.moveToFirst()){
                    int id = imageCursor.getInt(imageCursor.getColumnIndex(MediaStore.Images.Media._ID));
                    TouchExampleView view = new TouchExampleView(this, null, 0, id);
                    }

残念ながら、それは機能していません。

4

1 に答える 1