How to change text color and background color of TextView
using color picker in android.
To Add note which have functionality to change color of text and background choosing color form the color picker.
download this project import it.Color-picker
right click on project ---> property ---> android --->Add Click and add download project.
layout Note : use the image of color picker from downloaded project res folder---> drawable
<RelativeLayout 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"
tools:context=".MainActivity" >
<EditText
android:id="@+id/txNote"
android:layout_width="200dip"
android:layout_height="200dip"
android:layout_centerInParent="true"
android:text="@string/hello_world" />
<ImageView
android:id="@+id/rightColorPicker"
android:layout_width="@dimen/ambilwarna_hueWidth"
android:layout_height="@dimen/ambilwarna_hsvHeight"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/txNote"
android:scaleType="fitXY"
android:src="@drawable/ambilwarna_hue" />
<ImageView
android:id="@+id/leftColorPicker"
android:layout_width="@dimen/ambilwarna_hueWidth"
android:layout_height="@dimen/ambilwarna_hsvHeight"
android:layout_alignParentLeft="true"
android:layout_alignTop="@+id/txNote"
android:scaleType="fitXY"
android:src="@drawable/ambilwarna_hue" />
</RelativeLayout>
Activity
public class MainActivity extends Activity implements OnTouchListener {
TextView txtNote;
ImageView rightColorPicker,leftColorPicker;
private int mAppWidgetId = 0 ;
public static boolean flag;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txtNote=(TextView)findViewById(R.id.txNote);
rightColorPicker=(ImageView)findViewById(R.id.rightColorPicker);
leftColorPicker=(ImageView)findViewById(R.id.leftColorPicker);
rightColorPicker.setOnTouchListener(this);
leftColorPicker.setOnTouchListener(this);
Intent intent = getIntent();
Bundle extras = intent.getExtras();
if (extras != null) {
mAppWidgetId = extras.getInt(
AppWidgetManager.EXTRA_APPWIDGET_ID,
AppWidgetManager.INVALID_APPWIDGET_ID);
}
}
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (v.getId()) {
case R.id.rightColorPicker:
colorPicker();
flag=true;
break;
case R.id.leftColorPicker:
colorPicker();
flag=false;
break;
default:
break;
}
return false;
}
public void colorPicker() {
// initialColor is the initially-selected color to be shown in the rectangle on the left of the arrow.
// for example, 0xff000000 is black, 0xff0000ff is blue. Please be aware of the initial 0xff which is the alpha.
ColorPickerDialog dialog = new ColorPickerDialog(this, 0xff0000ff, new OnAmbilWarnaListener() {
// Executes, when user click Cancel button
@Override
public void onCancel(ColorPickerDialog dialog){
}
// Executes, when user click OK button
@Override
public void onOk(ColorPickerDialog dialog, int color) {
// Create an Intent to launch WidgetConfigurationActivity screen
Intent intent = new Intent(getBaseContext(), MainActivity.class);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mAppWidgetId);
// This is needed to make this intent different from its previous intents
intent.setData(Uri.parse("tel:/"+ (int)System.currentTimeMillis()));
// Creating a pending intent, which will be invoked when the user
// clicks on the widget
PendingIntent pendingIntent = PendingIntent.getActivity(getBaseContext(), 0,
intent, PendingIntent.FLAG_UPDATE_CURRENT);
// Getting an instance of WidgetManager
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(getBaseContext());
if (flag) {
txtNote.setBackgroundColor(color);
} else {
txtNote.setTextColor(color);
}
// // Instantiating the class RemoteViews with widget_layout
RemoteViews views = new
RemoteViews(getBaseContext().getPackageName(), R.layout.activity_main);
//
// // Setting the background color of the widget
views.setInt(R.id.txNote, "setBackgroundColor", color);
//
// // Attach an on-click listener to the clock
views.setOnClickPendingIntent(R.id.txNote,pendingIntent);
// Tell the AppWidgetManager to perform an update on the app widget
appWidgetManager.updateAppWidget(mAppWidgetId, views);
// Return RESULT_OK from this activity
Intent resultValue = new Intent();
resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mAppWidgetId);
setResult(RESULT_OK, resultValue);
//finish();
}
});
dialog.show();
}
}