正文

圖像合成(4)

Android多媒體開發(fā)高級(jí)編程 作者:(美)艾佛瑞


由于將每個(gè)按鈕的OnClickListener設(shè)置為this類,因此需要實(shí)現(xiàn)一個(gè)onClick方法進(jìn)行響應(yīng)。為了判斷單擊了哪一個(gè)按鈕,可以將傳入的View對(duì)象與每個(gè)Button對(duì)象進(jìn)行比較。如果它們相等,那么這就是單擊的按鈕。、可以設(shè)置一個(gè)變量which對(duì)應(yīng)先前定義的常量值,以此來(lái)跟蹤按下哪個(gè)按鈕。然后,將這個(gè)變量傳遞給正由ACTION_PICK意圖實(shí)例化的Gallery應(yīng)用程序。如同之前的示例所顯示的那樣,這將以允許用戶選擇一幅圖像的模式啟動(dòng)該應(yīng)用程序。

public void onClick(View v) {

 int which = -1;

 if (v == choosePicture1){

 which = PICKED_ONE;

          }

          else if (v == choosePicture2){

               which = PICKED_TWO;

          }

 

          Intent choosePictureIntent = new Intent(Intent.ACTION_PICK,

          android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);、startActivityForResult(choosePictureIntent, which);

     }

 在用戶選擇一幅圖像之后,將調(diào)用onActivityResult方法。通過(guò)startActivityForResult方法傳入的變量將在第一個(gè)參數(shù)(稱之為requestCode)中回傳給我們。利用它就可以知道用戶剛剛選擇了哪幅圖像:第一幅或第二幅。可以通過(guò)這個(gè)值來(lái)決定使用哪一個(gè)位圖對(duì)象加載所選擇的圖像。

 protected void onActivityResult(int requestCode, int resultCode,

Intent intent)   { super.onActivityResult(requestCode, resultCode, intent);

 

          if (resultCode == RESULT_OK){

               Uri imageFileUri = intent.getData();

 

               if (requestCode == PICKED_ONE){

                    bmp1 = loadBitmap(imageFileUri);

                    onePicked = true;

               }

               else if (requestCode == PICKED_TWO){

                    bmp2 = loadBitmap(imageFileUri);

                    twoPicked = true;

               }


上一章目錄下一章

Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)