1

現在、ペイントアプリを作成していますが、画像を読み込んでビットマップに設定する方法を教えてください。

コーディングを次のように設定し、クラスAとクラスDrawViewをリンクします。

質問:

DrawView Classコードは、行の「メソッドsetImageBitmap(Bitmap)is undefined for thetypeBitmap」というエラーを報告します

ビットマップ.setImageBitmap(BitmapFactory.decodeFile(picturePath));

、画像をビットマップにロードする方法がわかりません。

クラスAの場合:

private DrawView drawView;
...
...

public void go_load_pic() 
{       
    Intent i = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);                
    startActivityForResult(i, RESULT_LOAD_IMAGE);   
}   

protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) 
    {
        Uri selectedImage = data.getData();
        String[] filePathColumn = { MediaStore.Images.Media.DATA };

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

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

        drawView.load_pic(picturePath);     
    }   
}   

クラスDrawView:

public class DrawView extends View  // the main screen that is painted
{
   // used to determine whether user moved a finger enough to draw again   
   private static final float TOUCH_TOLERANCE = 10;

   private Bitmap bitmap; // drawing area for display or saving
   private Canvas bitmapCanvas; // used to draw on bitmap
   private Paint paintScreen; // use to draw bitmap onto screen
   private Paint paintLine; // used to draw lines onto bitmap
   private HashMap<Integer, Path> pathMap; // current Paths being drawn
   private HashMap<Integer, Point> previousPointMap; // current Points
   ...

public void load_pic(String picturePath) // load a picture from gallery
   {
      bitmap.setImageBitmap(BitmapFactory.decodeFile(picturePath)); //ERROR LINE
      invalidate(); // refresh the screen
   }
4

2 に答える 2

1

Bitmapクラスに存在しないメソッドを呼び出しています。そのメソッドは、やのようなフレームワークウィジェットにImageViewありImageButtonます。 すでにをBitmapFactory返すので、インスタンスを割り当てるだけです。Bitmap

bitmap = BitmapFactory.decodeFile(picturePath);
于 2013-01-20T05:03:46.703 に答える
0

decodeFile呼び出しは、ファイルからビットマップを作成します。あなたの可変ビットマップ-そのタイプは何ですか?その呼び出しのためにそれはImageViewであるべきですよね?

于 2013-01-20T04:59:10.633 に答える