首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Android中调整可绘制的大小

在Android中调整可绘制的大小
EN

Stack Overflow用户
提问于 2011-08-11 14:16:07
回答 5查看 87.4K关注 0票数 38

我正在设置一个进度对话框(pbarDialog)的可绘制对象,但我的问题是我想每次都调整可绘制对象的大小,但不知道如何调整。

下面是一些代码:

代码语言:javascript
复制
Handler progressHandler = new Handler() {

    public void handleMessage(Message msg) {
        switch (msg.what) {
            // some more code
            case UPDATE_PBAR:
                pbarDialog.setIcon(mAppIcon);
                pbarDialog.setMessage(mPbarMsg);
                pbarDialog.incrementProgressBy(mIncrement+1);
                break;
        }
    }
};

pbarDialog.show();

Thread myThread = new Thread(new Runnable() {

    public void run() {
        // some code
        for (int i = 0; i < mApps.size(); i++) {
            mAppIcon = mAdapter.getIcons().get(mApps.get(i).getPackageName());
            // need to resize drawable here
            progressHandler.sendEmptyMessage(UPDATE_PBAR);
        }
        handler.sendEmptyMessage(DISMISS_PBAR);
    }

});

myThread.start();
EN

回答 5

Stack Overflow用户

发布于 2011-12-20 16:53:02

下面的方法对我很有效:

代码语言:javascript
复制
private Drawable resize(Drawable image) {
    Bitmap b = ((BitmapDrawable)image).getBitmap();
    Bitmap bitmapResized = Bitmap.createScaledBitmap(b, 50, 50, false);
    return new BitmapDrawable(getResources(), bitmapResized);
}
票数 81
EN

Stack Overflow用户

发布于 2013-11-23 00:20:59

这就是我最终的结果,部分归功于Saad的回答:

代码语言:javascript
复制
public Drawable scaleImage (Drawable image, float scaleFactor) {

    if ((image == null) || !(image instanceof BitmapDrawable)) {
        return image;
    }

    Bitmap b = ((BitmapDrawable)image).getBitmap();

    int sizeX = Math.round(image.getIntrinsicWidth() * scaleFactor);
    int sizeY = Math.round(image.getIntrinsicHeight() * scaleFactor);

    Bitmap bitmapResized = Bitmap.createScaledBitmap(b, sizeX, sizeY, false);

    image = new BitmapDrawable(getResources(), bitmapResized);

    return image;

}
票数 22
EN

Stack Overflow用户

发布于 2014-05-10 01:36:07

对于调整大小,这是很好和简短的(上面的代码不适合我),发现here

代码语言:javascript
复制
  ImageView iv = (ImageView) findViewById(R.id.imageView);
  Bitmap bMap = BitmapFactory.decodeResource(getResources(), R.drawable.picture);
  Bitmap bMapScaled = Bitmap.createScaledBitmap(bMap, newWidth, newHeight, true);
  iv.setImageBitmap(bMapScaled);
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7021578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档