表示ビットマップ、元の画像 640*960 に問題がありますが、ビットマップで表示するとサイズが 120*240 になります。元のサイズで表示するにはどうすればよいですか?
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 8;
Bitmap bitmap = BitmapFactory.decodeResource(this.getResources(), Imgid[(int)(Math.random()*Imgid.length)], options);
ImageView iv = (ImageView)findViewById(position)
iv.setImageBitmap(processingBitmap_Brightness(bitmap));
私は bitmap.getwidth() と getheight() を記録しますが、640*960 は記録しません
このコードで元のサイズを取得できるようになりましたが、メモリ不足になったので、画像を処理できますか?
BitmapFactory.Options options = new BitmapFactory.Options();
//options.inSampleSize = 4;
options.inScaled = false;
ImageView iv = (ImageView)findViewById(position);
bitmap=BitmapFactory.decodeResource(getResources(), Imgid[(int)(Math.random()*Imgid.length)],options);
iv.setImageBitmap(processingBitmap_Brightness(bitmap));
Log.i("ID4",bitmap.getWidth()+" * "+bitmap.getHeight());
私はxmlでviewflipperを使用してコードで呼び出し、viewflipperでviewを追加しました
for (i = 0; i<5;i++) {
FrameLayout a = new FrameLayout(this);
FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.FILL_PARENT, FrameLayout.LayoutParams.FILL_PARENT,Gravity.CENTER);
a.setLayoutParams(lp);
b = new ImageView(this);
FrameLayout.LayoutParams lpiv = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout.LayoutParams.WRAP_CONTENT,Gravity.CENTER);
b.setId(i+1);
b.setLayoutParams(lpiv);
a.addView(b);
vf.addView(a);
}
そして私の onFling 関数
public boolean onFling(MotionEvent e1,MotionEvent e2,float velocityX,float velocityY){
try {
if(e1.getX() > e2.getX() && Math.abs(e1.getX() - e2.getX()) > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
vf.setInAnimation(AnimationUtils.loadAnimation(mContext, R.anim.left_in));
vf.setOutAnimation(AnimationUtils.loadAnimation(mContext,R.anim.left_out));
BitmapFactory.Options options = new BitmapFactory.Options();
//options.inSampleSize = 4;
options.inScaled = false;
Bitmap bitmap = BitmapFactory.decodeResource(this.getResources(), Imgid[(int)(Math.random()*Imgid.length)], options);
ImageView iv = (ImageView)findViewById(position);
iv.setImageBitmap(processingBitmap_Brightness(bitmap));
vf.showPrevious();
}else if (e1.getX() < e2.getX() && e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
vf.setInAnimation(AnimationUtils.loadAnimation(mContext,
R.anim.right_in));
vf.setOutAnimation(AnimationUtils.loadAnimation(mContext,
R.anim.right_out));
BitmapFactory.Options options = new BitmapFactory.Options();
//options.inSampleSize = 4;
options.inScaled = false;
Bitmap bitmap = BitmapFactory.decodeResource(this.getResources(), Imgid[(int)(Math.random()*Imgid.length)], options);
ImageView iv = (ImageView)findViewById(position);
iv.setImageBitmap(processingBitmap_Brightness(bitmap));
vf.showNext();
}
} catch (Exception e) {
// nothing
}
return true;
}