{
    "id": 644,
    "date": "2018-04-13T20:39:29",
    "date_gmt": "2018-04-13T20:39:29",
    "guid": {
        "rendered": "http:\/\/hayperek.pl\/?p=644"
    },
    "modified": "2018-04-13T20:39:29",
    "modified_gmt": "2018-04-13T20:39:29",
    "slug": "widgety-cz-4",
    "status": "publish",
    "type": "post",
    "link": "https:\/\/hayperek.pl\/pl_pl\/2018\/04\/13\/widgety-cz-4\/",
    "title": {
        "rendered": "Widgety &#8211; cz. 4"
    },
    "content": {
        "rendered": "<p>Kontynuujemy temat widget\u00f3w. Dzi\u015b przyszed\u0142 czas na dwa kolejne: menu oraz obraz\/bitmap\u0119. W por\u00f3wnaniu do <a href=\"http:\/\/hayperek.pl\/pl_pl\/2018\/04\/12\/widgety-cz-3\/\">wczorajszych widget\u00f3w tekstowych<\/a> s\u0105 one znacznie bardziej z\u0142o\u017cone. Dodatkowo menu jako pierwszy z widget\u00f3w musi zapewni\u0107 interakcj\u0119 z u\u017cytkownikiem i reagowa\u0107 na polecenia <a href=\"http:\/\/hayperek.pl\/pl_pl\/2018\/03\/26\/obsluga-manetki-cz-1\/\">manetki<\/a>. Nie ma na co czeka\u0107 &#8211; do dzie\u0142a!<\/p>\n<h5>Obraz\/bitmapa<\/h5>\n<p>na pierwszy rzut oka widget ten nie wydaje si\u0119 by\u0107 specjalnie skomplikowany. Musimy przecie\u017c tylko narysowa\u0107 dwuwymiarow\u0105 tablic\u0119 pikseli w wyznaczonym punkcie ekranu, a t\u0105 funkcjonalno\u015b\u0107 zapewnia nam ju\u017c przecie\u017c biblioteka graficzna. Po d\u0142u\u017cszym namy\u015ble zauwa\u017cymy jednak, \u017ce potrzebna b\u0119dzie konwersja danych z wybranego formatu BMP lub GIF na format strawny dla naszej biblioteki. Dodatkowo musimy uwzgl\u0119dni\u0107 r\u00f3\u017cnice w przestrzeni barw. Zazwyczaj korzystamy z palety RGB88, kt\u00f3ra do opisu ka\u017cdej sk\u0142adowej g\u0142\u00f3wnej u\u017cywa 8 bit\u00f3w. Wykorzystywany przez nas wy\u015bwietlacz obs\u0142uguje jedynie format RGB565, gdzie sk\u0142adowe czerwona i niebieska zawieraj\u0105 jedynie 5 bit\u00f3w, a sk\u0142adowa zielona &#8211; 6. W chwili obecnej jedynym \u017ar\u00f3d\u0142em danych jest dla nas nieulotna pami\u0119\u0107 Flash procesora. W przysz\u0142o\u015bci zostanie dodana obs\u0142uga wczytywania plik\u00f3w graficznych z <a href=\"http:\/\/hayperek.pl\/pl_pl\/2018\/03\/30\/karta-sd\/\">karty SD<\/a>. <\/p>\n<p>Na deser &#8211; proste okno sygnalizuj\u0105ce awari\u0119 uk\u0142adu hamulcowego \ud83d\ude42<\/p>\n<p><a href=\"http:\/\/hayperek.pl\/wp-content\/uploads\/2018\/04\/bitmaps.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/hayperek.pl\/wp-content\/uploads\/2018\/04\/bitmaps-225x300.jpg\" alt=\"\" width=\"225\" height=\"300\" class=\"aligncenter size-medium wp-image-646\" srcset=\"https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/04\/bitmaps-225x300.jpg 225w, https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/04\/bitmaps-600x800.jpg 600w, https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/04\/bitmaps-768x1024.jpg 768w, https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/04\/bitmaps.jpg 900w\" sizes=\"auto, (max-width: 225px) 100vw, 225px\" \/><\/a><\/p>\n<h5>Menu<\/h5>\n<p>Pierwszym krokiem jest podpi\u0119cie naszego widgetu do manetki tak, aby u\u017cytkownik m\u00f3g\u0142 przemieszcza\u0107 si\u0119 pomi\u0119dzy pozycjami. Wykorzystamy w tym celu interfejs opisany w jednym z <a href=\"http:\/\/hayperek.pl\/pl_pl\/2018\/03\/27\/obsluga-manetki-cz-2\/\">poprzednich artyku\u0142\u00f3w<\/a>. W ten spos\u00f3b widget nie jest zmuszony odnosi\u0107 si\u0119 bezpo\u015brednio do sprz\u0119tu czy samodzielnie sprawdza\u0107 stanu przycisk\u00f3w. Samo menu w obecnej postaci jest do\u015b\u0107 ascetyczne &#8211; priorytetem jest uruchomienie funkcjonalno\u015bci. Dopieszczenie wygl\u0105du pozostawimy sobie na koniec \ud83d\ude00<\/p>\n<p><a href=\"http:\/\/hayperek.pl\/wp-content\/uploads\/2018\/04\/menu.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/hayperek.pl\/wp-content\/uploads\/2018\/04\/menu-225x300.jpg\" alt=\"\" width=\"225\" height=\"300\" class=\"aligncenter size-medium wp-image-648\" srcset=\"https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/04\/menu-225x300.jpg 225w, https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/04\/menu-600x800.jpg 600w, https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/04\/menu-768x1024.jpg 768w, https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/04\/menu.jpg 900w\" sizes=\"auto, (max-width: 225px) 100vw, 225px\" \/><\/a><\/p>\n<p>Jak wida\u0107 powoli zaczynamy spina\u0107 przygotowane wcze\u015bniej kawa\u0142ki razem &#8211; tworz\u0105c zacz\u0105tki interfejsu u\u017cytkownika. Mo\u017cna sobie tylko wyobrazi\u0107 ile jeszcze mo\u017cliwo\u015bci przed nami \ud83d\ude42<br \/>\nTyle na dzi\u015b \ud83d\ude42 <\/p>",
        "protected": false
    },
    "excerpt": {
        "rendered": "<p>Kontynuujemy temat widget\u00f3w. Dzi\u015b przyszed\u0142 czas na dwa kolejne: menu oraz obraz\/bitmap\u0119. W por\u00f3wnaniu do wczorajszych widget\u00f3w tekstowych s\u0105 one znacznie bardziej z\u0142o\u017cone. Dodatkowo menu jako pierwszy z widget\u00f3w musi zapewni\u0107 interakcj\u0119 z u\u017cytkownikiem i reagowa\u0107 na polecenia manetki. Nie ma na co czeka\u0107 &#8211; do dzie\u0142a! Obraz\/bitmapa na pierwszy rzut oka widget ten nie [&hellip;]<\/p>",
        "protected": false
    },
    "author": 1,
    "featured_media": 653,
    "comment_status": "closed",
    "ping_status": "open",
    "sticky": false,
    "template": "",
    "format": "standard",
    "meta": {
        "footnotes": ""
    },
    "categories": [
        3
    ],
    "tags": [],
    "class_list": {
        "0": "post-644",
        "1": "post",
        "2": "type-post",
        "3": "status-publish",
        "4": "format-standard",
        "5": "has-post-thumbnail",
        "6": "hentry",
        "7": "category-stodni",
        "9": "post-with-thumbnail",
        "10": "post-with-thumbnail-large"
    },
    "_links": {
        "self": [
            {
                "href": "https:\/\/hayperek.pl\/pl_pl\/wp-json\/wp\/v2\/posts\/644",
                "targetHints": {
                    "allow": [
                        "GET"
                    ]
                }
            }
        ],
        "collection": [
            {
                "href": "https:\/\/hayperek.pl\/pl_pl\/wp-json\/wp\/v2\/posts"
            }
        ],
        "about": [
            {
                "href": "https:\/\/hayperek.pl\/pl_pl\/wp-json\/wp\/v2\/types\/post"
            }
        ],
        "author": [
            {
                "embeddable": true,
                "href": "https:\/\/hayperek.pl\/pl_pl\/wp-json\/wp\/v2\/users\/1"
            }
        ],
        "replies": [
            {
                "embeddable": true,
                "href": "https:\/\/hayperek.pl\/pl_pl\/wp-json\/wp\/v2\/comments?post=644"
            }
        ],
        "version-history": [
            {
                "count": 5,
                "href": "https:\/\/hayperek.pl\/pl_pl\/wp-json\/wp\/v2\/posts\/644\/revisions"
            }
        ],
        "predecessor-version": [
            {
                "id": 652,
                "href": "https:\/\/hayperek.pl\/pl_pl\/wp-json\/wp\/v2\/posts\/644\/revisions\/652"
            }
        ],
        "wp:featuredmedia": [
            {
                "embeddable": true,
                "href": "https:\/\/hayperek.pl\/pl_pl\/wp-json\/wp\/v2\/media\/653"
            }
        ],
        "wp:attachment": [
            {
                "href": "https:\/\/hayperek.pl\/pl_pl\/wp-json\/wp\/v2\/media?parent=644"
            }
        ],
        "wp:term": [
            {
                "taxonomy": "category",
                "embeddable": true,
                "href": "https:\/\/hayperek.pl\/pl_pl\/wp-json\/wp\/v2\/categories?post=644"
            },
            {
                "taxonomy": "post_tag",
                "embeddable": true,
                "href": "https:\/\/hayperek.pl\/pl_pl\/wp-json\/wp\/v2\/tags?post=644"
            }
        ],
        "curies": [
            {
                "name": "wp",
                "href": "https:\/\/api.w.org\/{rel}",
                "templated": true
            }
        ]
    }
}