我创建了一个实际使用填充填充算法来填充位图颜色的应用。我创建了一些位图(200x200),但我不知道我应该创建的位图的确切大小,我想要位图覆盖全屏,当我缩放位图时,它们会变得模糊,洪水填充也不会为他们工作。我看到一个使用GridView显示图像的应用程序,点击图像开始新的活动,图像覆盖全屏。我怎样才能做到这一点。附件是CustomImage,我用它来显示位图。任何帮助将不胜感激。 已编辑:我知道GridView不会将图片放大到全屏,而是使用其他图片。该应用程序对于不同的屏幕尺寸表现相同,任何尺寸的图像填充屏幕都不会影响质量。
公共类CustomImage扩展了View {
public CustomImage(Context context) {
super(context);
} // end constructor
public CustomImage(Context context, int resource_id) {
super(context);
mPaint = new Paint();
mPaint.setColor(Color.WHITE);
mPoint = new Point();
mProgressIndicator = (ProgressIndicator) context;
mBitmap = BitmapFactory.decodeResource(getResources(), resource_id)
.copy(Bitmap.Config.ARGB_8888, true);
} // end constructor
@Override
protected void onDraw(Canvas canvas) {
// draw image
canvas.drawBitmap(mBitmap, 0, 0, mPaint);
} // end onDraw
@Override
public boolean onTouchEvent(MotionEvent event) {
int bWidth = mBitmap.getWidth();
int bHeight = mBitmap.getHeight();
mPoint.x = (int) event.getX();
mPoint.y = (int) event.getY();
mPoint.x = (mPoint.x > bWidth) ? (bWidth - 5) : mPoint.x;
mPoint.y = (mPoint.y > bHeight) ? (bHeight - 5) : mPoint.y;
switch (event.getAction()) {
// called when screen clicked i.e New touch started
case MotionEvent.ACTION_DOWN:
mProgressIndicator.updateProgress(0);
new Filler(mBitmap, mPoint, mPaint.getColor(), mBitmap.getPixel(
mPoint.x, mPoint.y), this).execute();
invalidate();
} // end Case
return true;
} // end onTouchEvent
public void setColor(int color) {
mPaint.setColor(color);
} // end setColor
} //结束课
答案 0 :(得分:0)
您看到的GridView
可能正在使用同一图片的两个版本。一个是大图像,另一个是网格的缩小缩略图。