Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import android.annotation.TargetApi;
- import android.content.Context;
- import android.graphics.Bitmap;
- import android.graphics.BitmapFactory;
- import android.graphics.Canvas;
- import android.util.AttributeSet;
- import android.view.View;
- public class MyView extends View {
- private Bitmap theBitmap1, theBitmap2;
- private static final int WIDTH = 50;
- private static final int HEIGHT = 50;
- private static final int STRIDE = 64;
- public MyView(Context context) {
- super(context);
- initMyBitmaps();
- }
- public MyView(Context context, AttributeSet attrs) {
- super(context, attrs);
- initMyBitmaps();
- }
- public MyView(Context context, AttributeSet attrs, int defStyleAttr) {
- super(context, attrs, defStyleAttr);
- initMyBitmaps();
- }
- @TargetApi(21)// targetowanie danego poziomu interfejsu API, bez względu na cel projektu
- public MyView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
- super(context, attrs, defStyleAttr, defStyleRes);
- initMyBitmaps();
- }
- private void initMyBitmaps() {
- Bitmap aBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.rocket);//medtoda odkodywujaca nowa bitmape,Obiekt zasobów zawierający dane obrazu,Identyfikator zasobu danych obrazu
- final int dstWidth = 100;
- final int dstHeight = 160; //true, jeśli źródło powinno być filtrowane.
- 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,
- int[] avColors = createColors();
- 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.
- } //Tablica kolorów sRGB używanych do inicjowania pikseli.,Liczba wartości do pominięcia przed pierwszym kolorem w tablicy kolorów.
- //Liczba kolorów w tablicy między wierszami ,szerokośc bitmapy,wyokosc bitmapy,konfiguracja bitmapy do utworzenia
- @Override
- protected void onDraw(Canvas canvas) {
- canvas.drawBitmap(theBitmap1, 0, 0, null);//narysuje podana bitmape z lewym/górnym rogiem używającej bieżacej farby przekrztałcoenj przez macież
- canvas.drawBitmap(theBitmap2, 150, 0, null);
- }
- private static int[] createColors() {
- int[] colors = new int[STRIDE * HEIGHT];
- for (int y = 0; y < HEIGHT; y++) {
- for (int x = 0; x < WIDTH; x++) {
- int r = x * 255 / (WIDTH - 1);
- int g = y * 255 / (HEIGHT - 1);
- int b = 255 - Math.min(r, g);//Zwraca mniejszy zestaw wyrażeń liczbowych.
- int a = Math.max(r, g);//Zwraca większy zestaw dostarczony wyrażeń liczbowych.
- colors[y * STRIDE + x] = (a << 24) | (r << 16) | (g << 8) | b;//przesunięcia bitowe w lewo
- }
- }
- return colors;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement