Advertisement
Guest User

ColoringAndroid

a guest
Mar 21st, 2012
1,752
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.91 KB | None | 0 0
  1. package com.example.PaintDemo;
  2.  
  3.  
  4. import android.app.Activity;
  5. import android.graphics.Bitmap;
  6. import android.graphics.Bitmap.Config;
  7. import android.graphics.BitmapFactory;
  8. import android.graphics.Canvas;
  9. import android.graphics.drawable.BitmapDrawable;
  10. import android.os.Bundle;
  11. import android.view.MotionEvent;
  12. import android.view.View;
  13. import android.widget.ImageView;
  14. import android.view.View.OnTouchListener;
  15.  
  16. public class ColoringAndroidActivity extends Activity implements OnTouchListener{
  17. /** Called when the activity is first created. */
  18. private ImageView imageView;
  19. private Canvas cv;
  20. private Bitmap mask, original, colored;
  21. private int r,g,b;
  22. private int sG, sR, sB;
  23. @Override
  24. public void onCreate(Bundle savedInstanceState) {
  25. super.onCreate(savedInstanceState);
  26. setContentView(R.layout.coloring_android);
  27. //((ImageView)findViewById(R.id.coringImage)).setImageDrawable(R.drawable.original);
  28. imageView = (ImageView)findViewById(R.id.coringImage);
  29. imageView.setOnTouchListener(this);
  30.  
  31. mask = BitmapFactory.decodeResource(getResources(), R.drawable.mask); // Mask Image
  32. original = BitmapFactory.decodeResource(getResources(), R.drawable.original); // Original Image Without Color
  33.  
  34. colored = Bitmap.createBitmap(mask.getWidth(), mask.getHeight(), Config.ARGB_8888);
  35. //cv = new Canvas(colored);
  36. //cv.drawBitmap(original, 0,0, null);
  37. cv = new Canvas(colored);
  38. cv.drawBitmap(original, 0,0, null);
  39. imageView.setImageBitmap(original);
  40.  
  41. }
  42.  
  43. int ANTILAISING_TOLERANCE = 70;
  44.  
  45. public boolean onTouch(View arg0, MotionEvent arg1) {
  46. //mask = BitmapFactory.decodeResource(getResources(), R.drawable.mask);
  47. int selectedColor = mask.getPixel((int)arg1.getX(),(int)arg1.getY());
  48. sG = (selectedColor & 0x0000FF00) >> 8;
  49. sR = (selectedColor & 0x00FF0000) >> 16;
  50. sB = (selectedColor & 0x000000FF);
  51. System.out.println("SG :"+((selectedColor & 0x0000FF00) >> 8));
  52. System.out.println("SR :"+((selectedColor & 0x00FF0000) >> 16));
  53. System.out.println("SB :"+(selectedColor & 0x000000FF));
  54.  
  55. //original = BitmapFactory.decodeResource(getResources(), R.drawable.original);
  56. // colored = Bitmap.createBitmap(mask.getWidth(), mask.getHeight(), Config.ARGB_8888);
  57.  
  58. for(int x = 0; x < mask.getWidth(); x++){
  59. for(int y = 0; y < mask.getHeight(); y++){
  60.  
  61. g = (mask.getPixel(x,y) & 0x0000FF00) >> 8;
  62. r = (mask.getPixel(x,y) & 0x00FF0000) >> 16;
  63. b = (mask.getPixel(x,y) & 0x000000FF);
  64.  
  65. //System.out.println("r: "+r+", g: "+g+", b: "+b);
  66.  
  67.  
  68. if(Math.abs(sR - r) < ANTILAISING_TOLERANCE && Math.abs(sG - g) < ANTILAISING_TOLERANCE && Math.abs(sB - b) < ANTILAISING_TOLERANCE)
  69. colored.setPixel(x, y, (colored.getPixel(x, y) & 0xFFFF0000));
  70. }
  71. }
  72.  
  73. imageView.setImageBitmap(colored);
  74. imageView.invalidate();
  75. return true;
  76. }
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement