2016-08-15 24 views
0

SeekBarを私のアンドロイドプロジェクトで使用して画像のサイズを変更しましたが、期待通りに動作しません。サイズ変更ではなく画像が隠れています。ここでは以下の私のコードは次のとおりです。Android SeekBar画像のサイズ変更が機能しません

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) { 
    } 
}); 

誰もが、私はコード内の間違ってやっている私を助けることができます。

答えて

1
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); 
} 
+0

それはあなたを助けるかもしれません:) –

+0

あなたはここで何をしているかについてもう少し説明できますか? – AMAN77

+0

@DharaChandarana scaleImageメソッドは、イメージビューではなくレイアウト全体を拡大/縮小します。 –

関連する問題