简体   繁体   English

Android SeekBar图像大小调整不起作用

[英]Android SeekBar image resizing doesn't work

I have used SeekBar in my android project to resize image but it doesn't work as my expectation I mean it is hiding the image instead of resizing. 我已经在我的android项目中使用SeekBar来调整图像的大小,但是它不起作用,因为我的期望是隐藏图像而不是调整大小。 Here is my code below: 这是我的代码如下:

seekbarSize.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
    @Override
    public void onProgressChanged(SeekBar seekBar, int progresValue, boolean fromUser) {
        tmp = (ImageView) findViewById(lastIdImage);
        tmp.requestLayout();
        tmp.getLayoutParams().height = ((500 * progresValue) / 100) + 30;
        tmp.getLayoutParams().width = ((500 * progresValue) / 100) + 30;
    }

    @Override
    public void onStartTrackingTouch(SeekBar seekBar) {
    }

    @Override
    public void onStopTrackingTouch(SeekBar seekBar) {
    }
});

Can anybody help me what I have done wrong inside the code. 谁能帮我在代码内做错的事情。

private static final int WIDTH_SCALE_RATIO = 10;
private static final int HEIGHT_SCALE_RATIO = 10;
private int previousProcess = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final ImageView imgg = (ImageView) findViewById(R.id.imageView1);
    ((SeekBar) findViewById(R.id.seekBar1))
            .setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
                @Override
                public void onStopTrackingTouch(SeekBar arg0) {
                }

                @Override
                public void onStartTrackingTouch(SeekBar arg0) {
                }

                @Override
                public void onProgressChanged(SeekBar seekBar,
                        int progresValue, boolean fromUser) {
                    int diff = progresValue - previousProcess;
                    scaleImage(imgg, diff);
                    previousProcess = progresValue;
                }
            });
}

public void scaleImage(ImageView img, int scale) {
    Bitmap bitmap = ((BitmapDrawable) img.getDrawable()).getBitmap();
    float width = bitmap.getWidth();
    float height = bitmap.getHeight();
    width += scale * WIDTH_SCALE_RATIO;
    height += scale * HEIGHT_SCALE_RATIO;
    bitmap = Bitmap.createScaledBitmap(bitmap, (int) width, (int) height,
            true);
    img.setImageBitmap(bitmap);
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM