缩放位图而不会降低质量

时间:2014-07-22 19:07:35

标签: android bitmap fullscreen

我创建了一个实际使用填充填充算法来填充位图颜色的应用。我创建了一些位图(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

} //结束课

1 个答案:

答案 0 :(得分:0)

您看到的GridView可能正在使用同一图片的两个版本。一个是大图像,另一个是网格的缩小缩略图。