суббота, 6 апреля 2013 г.

Первое Android приложение.

         Хочу поделиться своим опытом написания первого android - приложения. В первую очередь конечно же ссылка на исходники приложения. Первая идея была написать простую раскраску  для дочки. С возможностью смены картинок для раскрашивания класс Draw.java. Класс является пользовательской view-шкой. Он же как шаблон используется и для простой рисовалки в этом приложении. Activity для этой  view-шки MagicLetter.java. Еще одна особенность, что кроме штатного  colorPicker-a(диалога выбора цветов), я реализовал свой в виде разноцветных карандашиков на форме color_panel.xml на этой же xml-ке простейшие эффекты рисования.
           Потом я пошел дальше и решил сделать "Магические картинки", т.е. на экране черно-белая картинка. Ребенок проводит пальцем и картинка в этом месте становиться цветной - моё дитё было в восторге. В плане реализации всё оказалось гораздо проще, чем казалось. Берем цветную картинку и  делаем её фоном. Далее делаем копию картинки черно-белой:
Bitmap bmpGrayscale = Bitmap.createBitmap(width, height,Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(bmpGrayscale);
Paint paint = new Paint();
ColorMatrix cm = new ColorMatrix();
cm.setSaturation(0);
ColorMatrixColorFilter f = new ColorMatrixColorFilter(cm);
paint.setColorFilter(f);
c.drawBitmap(bmpOriginal, 0, 0, paint);
           Далее все как и в draw.java. Кстати, исходный код в классе EraseLayout.java.
Важный момент, картинка должна быть с alpha - каналом. Я брал png-шки. Иначе, её не получится стереть, или лучше - стереть получиться, но вы увидите не цветной фон, а черный цвет.  Исходный код необходимо брать из brunch-а : PaintKids. Ну что же для первого раза я думаю хватит.