【问题标题】:Android Progress bar on ImageViewImageView 上的 Android 进度条
【发布时间】:2012-09-09 18:39:48
【问题描述】:

我正在开发一个应用程序,用户将从相机拍摄照片并将其显示在具有图像视图的预览屏幕上。

**CameraCapture.java**

class ButtonClickHandler implements View.OnClickListener 
{
    public void onClick( View view ){
        myVib.vibrate(50);
        startCameraActivity();
    }
}

protected void startCameraActivity()
{
    File filenew = new File( _path );
    Uri outputFileUri = Uri.fromFile( filenew );

    Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );
    intent.putExtra( MediaStore.EXTRA_OUTPUT, outputFileUri );
    intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
    startActivityForResult( intent, 0 );
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{   
    switch( resultCode )
    {
        case 0:
            break;

        case -1:
            //pictaken++;

            onPhotoTaken();

            break;
    }
}

protected void onPhotoTaken()
{
    //pictaken=true;

    Intent i = new Intent(CameraCapture.this,Preview.class);
    startActivity(i);
}

在我的 Preview 类中,捕获的图片显示在 ImageView 上

**Preview.java**

File imgFile = new File("/sdcard/DCIM/Camera/test.jpg");
if(imgFile.exists()){

    // Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());

    ImageView myImage = (ImageView) findViewById(R.id.image);
    Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
    Matrix mat = new Matrix();
    String degree="90";
    mat.postRotate(Integer.parseInt(degree));
    Bitmap bMapRotate = Bitmap.createBitmap(myBitmap, 0, 0,myBitmap.getWidth(),myBitmap.getHeight(), mat, true);
    myImage.setImageBitmap(bMapRotate);
    //myImage.setImageBitmap(myBitmap);

}
_image = ( ImageView ) findViewById( R.id.image );

有没有办法在 ImageView 上显示进度条,直到它从 SD 卡加载捕获的图像。 提前谢谢:)

【问题讨论】:

    标签: android android-asynctask progress-bar


    【解决方案1】:

    把你的 ImageView 和 Progressbar 放在一个 RelativeLayout 中。对于您的 ProgressBar,请使用:

    android:layout_centerInParent="true"
    

    它将在 RelativeLayout 中居中,即在 ImageView 上方。您可能还想在图像加载后隐藏 ProgressBar:

    progressBar.setVisibility(View.Gone)
    

    当图像被加载时。

    示例代码:

     <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
    
             <ImageView 
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:adjustViewBounds="true"/>
    
            <ProgressBar
                style="?android:attr/progressBarStyleSmall"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerInParent="true"
                android:visibility="visible"/>
    
        </RelativeLayout>
    

    【讨论】:

      【解决方案2】:

      这是我的解决方案。这有点不同。您可以使用它来创建带有图像和进度条的介绍视图。在这里,进度条位于中心底部的 150dp 处。也可以使用FrameLayout

      <?xml version="1.0" encoding="utf-8"?>
      <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content" >
      
          <ImageView
              android:id="@+id/imageView"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:contentDescription="@string/intro_description"
              android:scaleType="fitXY"
              android:src="@drawable/intro" />
      
          <ProgressBar
              android:id="@+id/progress"
              style="?android:attr/progressBarStyle"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_gravity="center"
              android:layout_marginTop="150dp"
              android:visibility="visible" />
      
      </FrameLayout>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-07-11
        • 1970-01-01
        • 2019-11-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-03
        • 1970-01-01
        相关资源
        最近更新 更多