ユーザーがカメラから写真を取り、画像ビューのプレビュー画面に表示するアプリを開発しています。
**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);
}
私のプレビュークラスでは、キャプチャされた画像が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 );
SDカードからキャプチャ画像を読み込むまで、ImageViewに進行状況バーを表示する方法はありますか?事前にThnx :)
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>
これが私の解決策です。少し違います。これを使用して、画像と進行状況バーを備えたイントロビューを作成できます。ここでは、プログレスバーは中央の下150 dpにあります。 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>