4

これは、プログラムでレイアウトを作成する下の私のコードです。画像をクリックしたときにズームインとズームアウトをプログラムで設定するにはどうすればよいですか? ユーザーが画像をクリックしてフルスクリーンに拡大し、もう一度クリックすると元のサイズに戻るときにプログラムに反応させたいのですが、どうすればよいですか?

    final DatabaseConnector dbConnector = new DatabaseConnector(this);  
     dbConnector.open();
     Cursor cursor =  
    dbConnector.getStageRequirements(Long.valueOf(currentStageID).longValue());
     reqdata = new MyData1[cursor.getCount()];
     int j = cursor.getCount();
     cursor.moveToFirst();
     i = 0;
     while (cursor.isAfterLast() == false) 
     {
         reqdata[i] = new MyData1(cursor.getString(1), cursor.getString(0));
         cursor.moveToNext();
         i++;
     }
     dbConnector.close();
     cursor.close();

     ScrollView scroll = new ScrollView(MainActivity1.this);
     scroll.setLayoutParams(new  
  LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,  
   LayoutParams.WRAP_CONTENT));      

     btnLO = new LinearLayout(MainActivity1.this);  
     LinearLayout.LayoutParams paramsLO = new  
    LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
     // button margins
     paramsLO.setMargins(0, 0, 0, 0);


     LinearLayout.LayoutParams paramsLO2 = new  
  LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
     // button margins
     paramsLO2.setMargins(0, 20, 0, 0);
     // button height/width *pixels*

     btnLO.setOrientation(LinearLayout.VERTICAL);
     btnLO.setBackgroundColor(5); // not working correctly

     //buttons
     for (i =0;i <reqdata.length;i++)
         {
             LinearLayout li=new LinearLayout(this);
             li.setOrientation(LinearLayout.HORIZONTAL);
             final Button b1 = new Button(MainActivity1.this);
             final ImageView imageView = new ImageView(MainActivity1.this);
             int width = 60;
             int height = 150;
             LinearLayout.LayoutParams parms = new  
    LinearLayout.LayoutParams(width,height);
             parms.setMargins(0, 5, 0, 0);
             imageView.setLayoutParams(parms);

             li.addView(b1, paramsLO);        
             li.addView(imageView);
             btnLO.addView(li);

             b1.setText(reqdata[i].getSpinnerText());

             b1.setOnClickListener(new View.OnClickListener() 
                    {
                        public void onClick(View v) 
                        {               


                             imageView1 = imageView;
                             Intent pictureActionIntent = new  
  Intent(MediaStore.ACTION_IMAGE_CAPTURE); 

  pictureActionIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new  
  File(SDCARD_ROOT_PATH + SAVE_PATH_IN_SDCARD,IMAGE_CAPTURE_NAME)));  

 startActivityForResult(pictureActionIntent,CAMERA_PICTURE);
                             b1.setClickable(false);


                          } 

                    });    

         }

     final Button b2 = new Button(MainActivity1.this);

     b2.setText("Submit");
     b2.setWidth(150);
     b2.setHeight(50);
     b2.setOnClickListener(new View.OnClickListener() 
     {
         public void onClick(View v) 
         {                           

             long visitID = dbConnector.saveVisit();

             for (i =0;i <reqdata.length;i++)
             {
                 dbConnector.saveVisitDetail(listByte.get(i),visitID,Long.valueOf(reqdata[i].getValue()).longValue());
             }     
                Toast.makeText(getBaseContext(), "Sucessful",Toast.LENGTH_SHORT).show();
                Intent intent = new Intent(MainActivity1.this, Main.class);     
                startActivity(intent);
                finish();
         }
     }); 
     btnLO.addView(b2, paramsLO2);
     btnLO.setGravity(Gravity.CENTER| Gravity.CENTER_HORIZONTAL);
     scroll.addView(btnLO);

     this.addContentView(scroll, new LayoutParams());

}
4

1 に答える 1

0

Lalit Poptaniが別の答えで言ったように、

StackOverflowには、この質問に対する優れた答えがあります。これを見てください、PinchZoom

于 2013-03-07T12:55:39.747 に答える