私は多くのコードを試し、Android 開発者を調べましたが、うまくいきませんでした。シーク バーでビットマップ イメージの明るさを調整したい
質問する
10693 次
3 に答える
8
画像の明るさを増減するにある例を確認してください
シークバーの進行状況の変更について以下に示すように実行します
int brightness;
SeekBar seekbarbrightness=(SeekBar)findViewById(R.id.seekBar1);
seekbarbrightness.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar arg0) {
// TODO Auto-generated method stub
}
@Override
public void onStartTrackingTouch(SeekBar arg0) {
// TODO Auto-generated method stub
}
@Override
public void onProgressChanged(SeekBar arg0, int progress, boolean arg2) {
// TODO Auto-generated method stub
brightness=progress;
Bitmap bitmap=doBrightness(originalbitmap,brightness);
imageView.setImageBitmap(bitmap);
}
});
于 2012-07-26T06:00:45.970 に答える
1
この例を使用してください
SeekBar sb_value = (SeekBar) findViewById(R.id.sb_value);
final ImageView im_brightness = (ImageView) findViewById(R.id.im_brightness);
sb_value.setProgress(125);
sb_value.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
im_brightness.setColorFilter(setBrightness(progress));
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
setBrightness メソッド:
public static PorterDuffColorFilter setBrightness(int progress) {
if (progress >= 100)
{
int value = (int) (progress-100) * 255 / 100;
return new PorterDuffColorFilter(Color.argb(value, 255, 255, 255), PorterDuff.Mode.SRC_OVER);
}
else
{
int value = (int) (100-progress) * 255 / 100;
return new PorterDuffColorFilter(Color.argb(value, 0, 0, 0), PorterDuff.Mode.SRC_ATOP);
}
}
于 2017-05-22T11:18:56.053 に答える