Advertisement
Guest User

Untitled

a guest
Jun 13th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.17 KB | None | 0 0
  1. import android.annotation.TargetApi;
  2. import android.content.Context;
  3. import android.graphics.Bitmap;
  4. import android.graphics.BitmapFactory;
  5. import android.graphics.Canvas;
  6. import android.util.AttributeSet;
  7. import android.view.View;
  8.  
  9. public class MyView extends View {
  10. private Bitmap theBitmap1, theBitmap2;
  11. private static final int WIDTH = 50;
  12. private static final int HEIGHT = 50;
  13. private static final int STRIDE = 64;
  14.  
  15. public MyView(Context context) {
  16. super(context);
  17. initMyBitmaps();
  18. }
  19.  
  20. public MyView(Context context, AttributeSet attrs) {
  21. super(context, attrs);
  22. initMyBitmaps();
  23. }
  24.  
  25. public MyView(Context context, AttributeSet attrs, int defStyleAttr) {
  26. super(context, attrs, defStyleAttr);
  27. initMyBitmaps();
  28. }
  29.  
  30. @TargetApi(21)// targetowanie danego poziomu interfejsu API, bez względu na cel projektu
  31. public MyView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
  32. super(context, attrs, defStyleAttr, defStyleRes);
  33. initMyBitmaps();
  34. }
  35.  
  36. private void initMyBitmaps() {
  37. Bitmap aBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.rocket);//medtoda odkodywujaca nowa bitmape,Obiekt zasobów zawierający dane obrazu,Identyfikator zasobu danych obrazu
  38. final int dstWidth = 100;
  39. final int dstHeight = 160; //true, jeśli źródło powinno być filtrowane.
  40. theBitmap1 = Bitmap.createScaledBitmap(aBitmap, dstWidth, dstHeight, true);//metoda tworząca nowa bitmape skalowna z istniejącej bitmapy,źródło bitmapy,nowa szerokośc,nowa wysokosc,
  41. int[] avColors = createColors();
  42. theBitmap2 = Bitmap.createBitmap(avColors, 0, STRIDE, WIDTH, HEIGHT, Bitmap.Config.ARGB_8888);//Zwraca niezmienną bitmapę o określonej szerokości i wysokości, z każdą wartością piksela ustawioną na odpowiadającą jej wartość w tablicy kolorów.
  43. } //Tablica kolorów sRGB używanych do inicjowania pikseli.,Liczba wartości do pominięcia przed pierwszym kolorem w tablicy kolorów.
  44. //Liczba kolorów w tablicy między wierszami ,szerokośc bitmapy,wyokosc bitmapy,konfiguracja bitmapy do utworzenia
  45. @Override
  46. protected void onDraw(Canvas canvas) {
  47. canvas.drawBitmap(theBitmap1, 0, 0, null);//narysuje podana bitmape z lewym/górnym rogiem używającej bieżacej farby przekrztałcoenj przez macież
  48. canvas.drawBitmap(theBitmap2, 150, 0, null);
  49. }
  50.  
  51. private static int[] createColors() {
  52. int[] colors = new int[STRIDE * HEIGHT];
  53. for (int y = 0; y < HEIGHT; y++) {
  54. for (int x = 0; x < WIDTH; x++) {
  55. int r = x * 255 / (WIDTH - 1);
  56. int g = y * 255 / (HEIGHT - 1);
  57. int b = 255 - Math.min(r, g);//Zwraca mniejszy zestaw wyrażeń liczbowych.
  58.  
  59. int a = Math.max(r, g);//Zwraca większy zestaw dostarczony wyrażeń liczbowych.
  60.  
  61. colors[y * STRIDE + x] = (a << 24) | (r << 16) | (g << 8) | b;//przesunięcia bitowe w lewo
  62. }
  63. }
  64. return colors;
  65.  
  66.  
  67. }
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement