Breaking News
Loading...
Saturday, 22 September 2012

Adjust lightness and darkness of ImageView, using LightingColorFilter.

09:51
Using LightingColorFilter, we can adjust lightness and darkness of ImageView by adjusting the passed parameter mul and add.

Adjust lightness and darkness of ImageView, using LightingColorFilter.


package com.example.androidcolorfilter;

import android.os.Bundle;
import android.app.Activity;
import android.graphics.Color;
import android.graphics.LightingColorFilter;
import android.widget.ImageView;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;

public class MainActivity extends Activity {

ImageView imageView;

SeekBar alphaMulBar, redMulBar, greenMulBar, blueMulBar;
SeekBar alphaAddBar, redAddBar, greenAddBar, blueAddBar;
TextView colorInfo;

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

imageView = (ImageView)findViewById(R.id.iv);

alphaMulBar = (SeekBar)findViewById(R.id.mula);
redMulBar = (SeekBar)findViewById(R.id.mulr);
greenMulBar = (SeekBar)findViewById(R.id.mulg);
blueMulBar = (SeekBar)findViewById(R.id.mulb);

alphaAddBar = (SeekBar)findViewById(R.id.adda);
redAddBar = (SeekBar)findViewById(R.id.addr);
greenAddBar = (SeekBar)findViewById(R.id.addg);
blueAddBar = (SeekBar)findViewById(R.id.addb);

colorInfo = (TextView)findViewById(R.id.colorinfo);

alphaMulBar.setOnSeekBarChangeListener(colorBarChangeListener);
redMulBar.setOnSeekBarChangeListener(colorBarChangeListener);
greenMulBar.setOnSeekBarChangeListener(colorBarChangeListener);
blueMulBar.setOnSeekBarChangeListener(colorBarChangeListener);

alphaAddBar.setOnSeekBarChangeListener(colorBarChangeListener);
redAddBar.setOnSeekBarChangeListener(colorBarChangeListener);
greenAddBar.setOnSeekBarChangeListener(colorBarChangeListener);
blueAddBar.setOnSeekBarChangeListener(colorBarChangeListener);

setLightingColorFilter(imageView);
}

OnSeekBarChangeListener colorBarChangeListener
= new OnSeekBarChangeListener(){

@Override
public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {
setLightingColorFilter(imageView);
}

@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub

}

@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub

}
};

private void setLightingColorFilter(ImageView iv){

int mul = Color.argb(
alphaMulBar.getProgress(),
redMulBar.getProgress(),
greenMulBar.getProgress(),
blueMulBar.getProgress());

int add = Color.argb(
alphaAddBar.getProgress(),
redAddBar.getProgress(),
greenAddBar.getProgress(),
blueAddBar.getProgress());

LightingColorFilter lightingColorFilter = new LightingColorFilter(mul, add);
iv.setColorFilter(lightingColorFilter);

colorInfo.setText(
"mul = #" + Integer.toHexString(mul) +"\n" +
"add = #" + Integer.toHexString(add));

}

}


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<ImageView
android:id="@+id/iv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher"/>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="mul"
android:layout_alignParentLeft="true"/>

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/text_mul_a"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="a"
android:layout_alignParentLeft="true"/>
<SeekBar
android:id="@+id/mula"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="255"
android:progress="255"
android:layout_toRightOf="@id/text_mul_a"
android:layout_alignParentRight="true"/>
</RelativeLayout>

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/text_mul_r"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="r"
android:layout_alignParentLeft="true"/>
<SeekBar
android:id="@+id/mulr"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="255"
android:progress="255"
android:layout_toRightOf="@id/text_mul_r"
android:layout_alignParentRight="true"/>
</RelativeLayout>

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/text_mul_g"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="g"
android:layout_alignParentLeft="true"/>
<SeekBar
android:id="@+id/mulg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="255"
android:progress="255"
android:layout_toRightOf="@id/text_mul_g"
android:layout_alignParentRight="true"/>
</RelativeLayout>

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/text_mul_b"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="b"
android:layout_alignParentLeft="true"/>
<SeekBar
android:id="@+id/mulb"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="255"
android:progress="255"
android:layout_toRightOf="@id/text_mul_b"
android:layout_alignParentRight="true"/>
</RelativeLayout>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="add"
android:layout_alignParentLeft="true"/>

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/text_add_a"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="a"
android:layout_alignParentLeft="true"/>
<SeekBar
android:id="@+id/adda"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="255"
android:progress="255"
android:layout_toRightOf="@id/text_add_a"
android:layout_alignParentRight="true"/>
</RelativeLayout>

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/text_add_r"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="r"
android:layout_alignParentLeft="true"/>
<SeekBar
android:id="@+id/addr"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="255"
android:progress="255"
android:layout_toRightOf="@id/text_add_r"
android:layout_alignParentRight="true"/>
</RelativeLayout>

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/text_add_g"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="g"
android:layout_alignParentLeft="true"/>
<SeekBar
android:id="@+id/addg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="255"
android:progress="255"
android:layout_toRightOf="@id/text_add_g"
android:layout_alignParentRight="true"/>
</RelativeLayout>

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/text_add_b"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="b"
android:layout_alignParentLeft="true"/>
<SeekBar
android:id="@+id/addb"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="255"
android:progress="255"
android:layout_toRightOf="@id/text_add_b"
android:layout_alignParentRight="true"/>
</RelativeLayout>

<TextView
android:id="@+id/colorinfo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>

</LinearLayout>


download filesDownload the files.

0 comments:

Post a Comment

 
Toggle Footer