【问题标题】:How to set and store an image in an Image View or Button in Android?如何在 Android 的 Image View 或 Button 中设置和存储图像?
【发布时间】:2012-06-04 04:02:10
【问题描述】:

我已经构建了一个允许用户单击图像按钮的 android 应用程序。单击后,用户可以选择打开图库或相机。

我希望图像(从图库中选择或用相机拍摄)显示在图像按钮中。此外,我希望将图像或其路径存储到 sql 数据库中,以便在再次打开应用程序时,用户会看到他之前设置的图像。

谁能给我一个这样做的代码示例?

【问题讨论】:

    标签: android sql image store


    【解决方案1】:

    您的问题没有简短的答案,同时发布所有问题会减少您的学习。无论如何,有很多关于如何做到这一点的教程。

    我猜你已经完成了图库和相机代码。否则,您可以在下面的链接中找到它。

    图库:Get/pick an image from Android's built-in Gallery app programmatically

    相机:Capture Image from Camera and Display in Activity

    当您从捕获或选择的图片中获取 Uri 时,您可以从中创建位图:

    public Bitmap getBitmapFromUri(Uri uri)
    {
        return MediaStore.Images.Media.getBitmap(this.getContentResolver(), uri);
    }
    

    然后您可以使用以下方法将位图设置为图像按钮:

    ((ImageButton) findViewById(R.id.yourImageButton)).setImageBitmap(bitmap);
    

    我粘贴的其中一个链接向您展示了如何获取图像的路径。您可以将此路径保存在数据库中,也可以使用SharedPreferences 保存它。您可以在同一个链接中了解如何使用它。关于数据库,您知道如何从我的答案中获取图像路径。在 google 上搜索数据库教程。但我认为 SharedPreferences 就足够了,具体取决于您的应用程序的规模。

    祝你好运!

    【讨论】:

      【解决方案2】:

      单击按钮并在imageview中设置商店图像。

      `公共类 MainActivity 扩展 Activity {

      private static final int CAMERA_PIC_REQUEST = 22;
      
      Uri cameraUri;
      
      Button BtnSelectImage;
      private ImageView ImgPhoto;
      private String Camerapath ;
      
      
      
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
      
          ImgPhoto = (ImageView) findViewById(R.id.imageView1);
      
          BtnSelectImage = (Button) findViewById(R.id.button1);
          BtnSelectImage.setOnClickListener(new OnClickListener() {
              @Override
              public void onClick(View view) {
                  // TODO Auto-generated method stub
                  try {
                         Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
                         startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);
                  } catch (Exception e) {
                      Toast.makeText(getApplicationContext(), "Couldn't load photo", Toast.LENGTH_LONG).show();
                  }
              }
          });
      
      }
      
      
      @Override
      public void onActivityResult(final int requestCode, int resultCode, Intent data) {
          try {
              switch (requestCode) {
             case CAMERA_PIC_REQUEST:
                  if (resultCode == RESULT_OK) {
                      try {
                            Bitmap photo = (Bitmap) data.getExtras().get("data"); 
      
                            ImgPhoto.setImageBitmap(photo);    
      
                      } catch (Exception e) {
                          Toast.makeText(this, "Couldn't load photo", Toast.LENGTH_LONG).show();
                      }
                  }
                  break;
                default:
                  break;
              }
          } catch (Exception e) {
          }
      }
      

      }`

      设置此清单。

      <uses-permission android:name="android.permission.CAMERA" /> <uses-feature android:name="android.hardware.camera" android:required="false"></uses-feature>

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-12-18
        • 2017-09-12
        • 1970-01-01
        • 2017-12-22
        • 1970-01-01
        • 1970-01-01
        • 2020-12-04
        相关资源
        最近更新 更多