まず、これらのボタンをレイアウトに追加します。
<Button
android:id="@+id/captureFront"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:onClick="onCaptureClick"
android:text="Take Photo" />
<Button
android:id="@+id/sepia"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:onClick="onSepiaClick"
android:text="Sepia"
android:visibility="visible" />
<Button
android:id="@+id/none"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:onClick="onNoneClick"
android:text="None" />
<Button
android:id="@+id/solarize"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:onClick="onSolarizeClick"
android:text="Solarize" />
<Button
android:id="@+id/mono"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:onClick="onMonoClick"
android:text="Mono" />
<Button
android:id="@+id/negative"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:onClick="onNegativeClick"
android:text="Negative" />
次に、それぞれの onClick メソッドを次に示します。
public void onNoneClick(View view){
p = camera.getParameters();
p.setColorEffect("none");
camera.setParameters(p);
}
public void onMonoClick(View view){
p = camera.getParameters();
p.setColorEffect("mono");
camera.setParameters(p);
}
public void onSepiaClick(View view){
p = camera.getParameters();
p.setColorEffect("sepia");
camera.setParameters(p);
}
public void onSolarizeClick(View view){
p = camera.getParameters();
p.setColorEffect("solarize");
camera.setParameters(p);
}
public void onNegativeClick(View view){
p = camera.getParameters();
p.setColorEffect("negative");
camera.setParameters(p);
}
単純に pprivate Camera.Parameters p;
と camera はprivate Camera camera;
編集
public static Bitmap doBrightness(Bitmap src, int value) {
// image size
int width = src.getWidth();
int height = src.getHeight();
// create output bitmap
Bitmap bmOut = Bitmap.createBitmap(width, height, src.getConfig());
// color information
int A, R, G, B;
int pixel;
// scan through all pixels
for(int x = 0; x < width; ++x) {
for(int y = 0; y < height; ++y) {
// get pixel color
pixel = src.getPixel(x, y);
A = Color.alpha(pixel);
R = Color.red(pixel);
G = Color.green(pixel);
B = Color.blue(pixel);
// increase/decrease each channel
R += value;
if(R > 255) { R = 255; }
else if(R < 0) { R = 0; }
G += value;
if(G > 255) { G = 255; }
else if(G < 0) { G = 0; }
B += value;
if(B > 255) { B = 255; }
else if(B < 0) { B = 0; }
// apply new pixel color to output bitmap
bmOut.setPixel(x, y, Color.argb(A, R, G, B));
}
}
// return final image
return bmOut;
}
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);
}
});
これは Bitmap で動作しますが、使用したいもので動作するように変更できます。