如何将捕获图像设置为图像视图

时间:2013-03-05 12:43:42

标签: android android-camera android-capture

如何在图像视图之间设置边距?在我的代码中,我通过使用for循环创建了许多imageview,但在两个图像视图之间没有空格如何在teo图像视图之间设置边距?  如何以编程方式在两个imageview之间添加空间???

          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);
     // button height/width *pixels*
     paramsLO.height = 75;
     paramsLO.width = 75;

     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);


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

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

                             imgIndex = btnLO.indexOfChild(b1)/2;

 Toast.makeText(getBaseContext(),imgIndex,  
  Toast.LENGTH_SHORT).show();
                             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);

                          } 

                    });    

         }

     final Button b2 = new Button(MainActivity1.this);
     b2.setText("Submit");
     b2.setOnClickListener(new View.OnClickListener() 
     {
         public void onClick(View v) 
         {                           
             for (i =0;i <reqdata.length;i++)
             {


 dbConnector.saveVisitDetail(blob[i],i,Long.valueOf(reqdata[i].getValue())
   .longValue());
             }               
         }
     }); 
     btnLO.addView(b2, paramsLO);
     btnLO.setGravity(Gravity.LEFT | Gravity.CENTER_HORIZONTAL);
     scroll.addView(btnLO);

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

 }



 @Override
   protected void onActivityResult(int requestCode, int resultCode, Intent  
 imageReturnedIntent) {
       super.onActivityResult(requestCode, resultCode, imageReturnedIntent);

            if (imageReturnedIntent.getExtras() != null) 
                {
                    // here is the image from camera
                    yourSelectedImage = (Bitmap)  
imageReturnedIntent.getExtras().get("data");
                    ByteArrayOutputStream outStr = new  
ByteArrayOutputStream();                  

yourSelectedImage.compress(CompressFormat.JPEG, 100, outStr);
                    blob[imgIndex] = outStr.toByteArray();
                    yourSelectedImage =   

BitmapFactory.decodeByteArray(blob[imgIndex], 0, blob.length);
                    imageView1.setImageBitmap(yourSelectedImage);

                }

    }

2 个答案:

答案 0 :(得分:2)

  protected void onActivityResult(int requestCode, int resultCode, Intent ata)                                     
              {
    if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) {
        if (resultCode == RESULT_OK) {


             imageView = (ImageView) findViewById(R.id.imageView1);
            Bitmap photo = (Bitmap) data.getExtras().get("data");
            imageView.setImageBitmap(photo)
        }}}

答案 1 :(得分:0)

尝试以这种方式设置边缘:

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
layoutParams.setMargins(30, 30, 30, 30);
image.setLayoutParams(params);