daily pastebin goal
65%
SHARE
TWEET

Untitled

a guest Jun 13th, 2018 65 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top