2. Fragments Tutorial MainActivity - Czech language
Díl 2.
V prvním dile jsme se něco dozvěděli od XML souborech
Používáme příklad i zip porojekt z https://developer.android.com/training/basics/fragments/creating.html
V tomto díle si rozebereme záludnosti v souboru MainActivity.java.
V prvním dile jsme se něco dozvěděli od XML souborech
a taky jaké označení procesoru pro rok 2016 - Intel® VT-x, Intel® EM64T - musí mít PC pro programování v Android Studiu, tedy hlavně pro spuštění emulátoru - virtuálního telefonu, tabletu atd. jinak nebudete moci testovat aplikace na nejnovějších zařízeních, které tento emulátor umí napodobit.
Dole na stránce odkazu je uvedena minimální konfigurace PC, ale protože Android je již plnokrevný OS, který se neustále rozrůstá, tak tyto hodnoty jsou prakticky nedostatečné a je třeba osadit PC nejnovějšími komponentami.
Používáme příklad i zip porojekt z https://developer.android.com/training/basics/fragments/creating.html
V tomto díle si rozebereme záludnosti v souboru MainActivity.java.
// název balíčku
package com.example.android.fragments;
import android.os.Bundle;
// knihovny nutné pro spuštění na starších zařízeních s verzí Androidu API 4
// API verze a příslušné číslo verze Androidu jsou zde
// https://cs.wikipedia.org/wiki/Historie_verz%C3%AD_Android
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentTransaction;
// HeadlinesFragment je třída se seznamem položek, která díky
// OnHeadlineSelectedListener bude vracet události kliknutí na položku
// Pokud při pokusech přídáme jiný soubor se seznamem, je nutno změnit i název HeadlinesFragment
// na nový název, jinak nic neodchytíme!!!!
public class MainActivity extends FragmentActivity
implements HeadlinesFragment.OnHeadlineSelectedListener {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// tady se rozhoduje zda si vezme XML pro malé obrazovky, jen s jedním panelem, nebo
// velké se dvěma panely
// Rozhoduje si o tom systém sám, ale můžeme to ovlivnit a pdstrčit mu
// i dvoupanel pro testování - viz předchozí díl //android.okhelp.cz/1-fragments-tutorial-xml-czech-language/
setContentView(R.layout.news_articles);
//// VELKE OBRAZOVKY - layout-large - dual panel /////////
// pokud si systém vybere news_articles.xml z layout-large (dual panel)
// budou fragmenty automaticky naloděny do tagů fragment, kde jsou
// uvedeny absolutní cesty fragmentů!!!!
// např. fragment android:name="com.example.android.fragments.HeadlinesFragment"
// si nalodí sám fragment s linkami - položkami ListView.
// Podobně se sám obslouží při nalodění i fragment s obsahem
// fragment android:name="com.example.android.fragments.ArticleFragment"
// Tyto tagy fragment, s absolutní cestou k fragmentu,
// neumožňují výměnu fragmentu za běhu aplikace!!!!!
// Dynamickou výměnu fragmenut však umožňují kontejnery tagu FrameLayout
//// MALE OBRAZOVKY - jen jeden fragment //////
// Zkontrolujeme, který XML byl naloděn, pokud je activováno R.id.fragment_container
// značí to, že byl vybrán XML ze složky layout, kde je pouze jeden panel a do něj
// vložíme pouze fragment se seznamem, tedy HeadlinesFragment a pak po vybrání položky
// v něm otevřeme ArticleFragment.java s vypsáním obsahu článku atd.
if (findViewById(R.id.fragment_container) != null) {
// Pokud obnovujeme seznam položek vrácením se z předchozího stavu - fragmentu
// pak nepotřebujeme nic dělat a měl bychom opustit tento if, jinak
// dojde překrývání fragmentů, tedy uvídíme překryv textů a dalších elementů původního
// fragmentu fragmentem novým proto uděláme podmínku:
if (savedInstanceState != null) {
return;
}
// vytvoříme instanci HeadlinesFragment s položkami seznamu v ListView
HeadlinesFragment firstFragment = new HeadlinesFragment();
// pokud chceme vložit speciální instrukce pro start odebrané z nějakého Intent,
// odchytíme je zde a vložíme je jako argumenty. Pak je při startu fragmentu
// možno odchytit v onCreate()
firstFragment.setArguments(getIntent().getExtras());
// vložíme fragment do fragment_container FrameLayout-u
// který umožňuje výměnu fragmentů
getSupportFragmentManager().beginTransaction()
.add(R.id.fragment_container, firstFragment).commit();
}
}
// uživatel klikl na nějakou položku ze seznamu v HeadlinesFragment!
public void onArticleSelected(int position) {
// vybereme určitý článek dle pozice položky vybrané v seznamu ListView
// Provedeme kontrolu jestli je naloděn dual panel, nebo jen jednoduchý
ArticleFragment articleFrag = (ArticleFragment)
getSupportFragmentManager().findFragmentById(R.id.article_fragment);
if (articleFrag != null) {
// VELKÉ OBRAZOVKY
// protože je aktivní id R.id.article_fragment z news_articles.xml v layout-large složce
// víme, že aplikace používá dual-panel, dva fragmenty vedle sebe
// zde se volá funkce která je obsažena v třídě v souboru ArticleFragment.java
// a provede patřičné příkazy, v našem případě se
// vypíše obsah článku z třídy Ipsum.java
// sloužící jako úložiště textů přiřazených k jednotlivým
// pozicím - položkám seznamu ListView
articleFrag.updateArticleView(position);
} else {
// MALÉ OBRAZOVKY
// jen JEDEN-PANEL se zobrazuje - vybrán soubor news_articles.xml v layout složce
// musíme vyměnit fragemnty !!!!
// Vytvoříme fragment a doplníme argumenty - hodnoty, poslané např. z HeadlinesFragment.java
// jedná se nám především o pozici položky, na kterou bylo kliknuto v ListView
// tato pozice bude určující pro výběr obsahu pro ArticleFragment
ArticleFragment newFragment = new ArticleFragment();
Bundle args = new Bundle();
args.putInt(ArticleFragment.ARG_POSITION, position);
newFragment.setArguments(args);
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
// Zde vyměníme původní fragment HeadlinesFragment novým fragmentem s obsahem článku atd.
// Můžeme vyměnit fragment za jiný, protože id fragment_container v layout/news_articles.xml je tagu FrameLayout
transaction.replace(R.id.fragment_container, newFragment);
// addToBackStack umožní uživateli vrátit se zpět na seznam položek v HeadlinesFragment.java
transaction.addToBackStack(null);
// celou transakci předáme ke schválení :)
transaction.commit();
}
}
}
396LW NO topic_id
AD
Další témata ....(Topics)
In html is horizontal line a tag br. In Android source code you can use a View as xml example bellow.
<View
android:layout_width="fill_parent"
android:layout_height="4dip"
android:background="#ffffff"
android:paddingBottom="10dip"
/>
HTC Sensation 4G cena od 11 000 KCZ Kč (únor.2012)
Spokojenost uživatelů nadprůměrná.
HTC Sensation 4G je chytrý telefon s operačním systémem Android.
HTC Sensation 4G je (22.února2012) 10. nejpoužívanějším chytrým telefonem u programu Sky Map viz tabulka.
Výrobce HTC
Kompatibilní sítě GSM / GPRS / EDGE
850 900 1800 1900 MHz
UMTS / HSPA
850 1900 2100 nebo 900 1700 2100 MHz
HSDPA 14,4 Mbps
HSUPA 5.76 Mbps
První předvedení 19.května 2011
Zaváděcí cena US 199,99 dolarů
Nástupce HTC Sensation XE, HTC 4G Amaze
Rozměry 126.1 mm (4.96 v) H
65.4 mm 2,57 in) W
11.3 mm (0,44 in) D
Hmotnost 148 g
Operační systém Android 2.3.3 Gingerbread (upgrade až na 2.3.4),
HTC Sense 3.0 overlay
Procesor:
Dual-core CPU, 1.2 GHz Qualcomm MSM8260 Snapdragon, Sensation XE dual-core 1,5 GHz Qualcomm MSM8260 Snapdragon, Sensation XL jednoho jádra 1,5 GHz Qualcomm MSM8255 Snapdragon
GPU Qualcomm adreno 220, Sensation XL adreno 205
Paměť 768 MB RAM
4 GB (1 GB uživatelsky dostupných)
Paměť vyjmutelná: 8 GB microSD 2.0, podporuje až 32 GB
Baterie 1520 mAh vnitřní dobíjecí Li-ion vyměnitelné
Datové vstupy A-GPS, čidlo okolního osvětlení, digitální kompas, G-senzor, gyroskop, multi-touch kapacitní dotykový displej, snímač
Displej 4.3 v (110 mm) kapacitní S-LCD dotykový displej Gorilla skla s QHD (540 × 960) rozlišením na 256.15 PPI
Fotoaparát na zadní straně s 8 miliony pixelů (3264 x 2448) s automatickým ostřením a dvojitým LED bleskem a 1080p HD video záznamu @ 30 snímků / s, kohoutek k zaměření s digitálním zoomem
Fotoaparát na přední straně VGA pevné zaostření barevná kamera (0,3 megapixelů)
Kompatibilní média formáty audio AAC, AMR, OGG, M4A, MIDI, MP3, WAV, WMA
Video 1920 × 1080 (1080p HD) @ 30 snímků / s - 3GP, .3 G2, MP4, WMV, AVI, XVID
Vyzváněcí tóny a oznámení všechny kompatibilní audio formáty
Vibrace
Připojení 3.5 mm TRRS konektor, Bluetooth 3.0 s A2DP, FM přijímač (87,5 - 108 MHz) s RDS, Micro USB 2.0 (5-pin) port s Mobile High-Definition Link (MHL) pro USB nebo HDMI připojení, Wi-Fi 802.11b/g/n
Zdroj: wikipedia
HTC Sensation 4G photo pic image
Zdroj obrázku: wikipedia
Spokojenost uživatelů nadprůměrná.
HTC Sensation 4G je chytrý telefon s operačním systémem Android.
HTC Sensation 4G je (22.února2012) 10. nejpoužívanějším chytrým telefonem u programu Sky Map viz tabulka.
Výrobce HTC
Kompatibilní sítě GSM / GPRS / EDGE
850 900 1800 1900 MHz
UMTS / HSPA
850 1900 2100 nebo 900 1700 2100 MHz
HSDPA 14,4 Mbps
HSUPA 5.76 Mbps
První předvedení 19.května 2011
Zaváděcí cena US 199,99 dolarů
Nástupce HTC Sensation XE, HTC 4G Amaze
Rozměry 126.1 mm (4.96 v) H
65.4 mm 2,57 in) W
11.3 mm (0,44 in) D
Hmotnost 148 g
Operační systém Android 2.3.3 Gingerbread (upgrade až na 2.3.4),
HTC Sense 3.0 overlay
Procesor:
Dual-core CPU, 1.2 GHz Qualcomm MSM8260 Snapdragon, Sensation XE dual-core 1,5 GHz Qualcomm MSM8260 Snapdragon, Sensation XL jednoho jádra 1,5 GHz Qualcomm MSM8255 Snapdragon
GPU Qualcomm adreno 220, Sensation XL adreno 205
Paměť 768 MB RAM
4 GB (1 GB uživatelsky dostupných)
Paměť vyjmutelná: 8 GB microSD 2.0, podporuje až 32 GB
Baterie 1520 mAh vnitřní dobíjecí Li-ion vyměnitelné
Datové vstupy A-GPS, čidlo okolního osvětlení, digitální kompas, G-senzor, gyroskop, multi-touch kapacitní dotykový displej, snímač
Displej 4.3 v (110 mm) kapacitní S-LCD dotykový displej Gorilla skla s QHD (540 × 960) rozlišením na 256.15 PPI
Fotoaparát na zadní straně s 8 miliony pixelů (3264 x 2448) s automatickým ostřením a dvojitým LED bleskem a 1080p HD video záznamu @ 30 snímků / s, kohoutek k zaměření s digitálním zoomem
Fotoaparát na přední straně VGA pevné zaostření barevná kamera (0,3 megapixelů)
Kompatibilní média formáty audio AAC, AMR, OGG, M4A, MIDI, MP3, WAV, WMA
Video 1920 × 1080 (1080p HD) @ 30 snímků / s - 3GP, .3 G2, MP4, WMV, AVI, XVID
Vyzváněcí tóny a oznámení všechny kompatibilní audio formáty
Vibrace
Připojení 3.5 mm TRRS konektor, Bluetooth 3.0 s A2DP, FM přijímač (87,5 - 108 MHz) s RDS, Micro USB 2.0 (5-pin) port s Mobile High-Definition Link (MHL) pro USB nebo HDMI připojení, Wi-Fi 802.11b/g/n
Zdroj: wikipedia
HTC Sensation 4G photo pic image
Zdroj obrázku: wikipedia
Chytré telefony s Androidem - tabulka srovnání dle ceny:
Výrobce |
Model (codename) |
Cena, včetně DPH |
CPU MHz |
displej-rozlišení |
Velikost displeje v palcích |
ROM |
RAM |
---|---|---|---|---|---|---|---|
Huawei |
Vodafone 845 (U8120, Joy) |
1979 |
528 |
240x320 |
2.8 |
512 |
256 |
ZTE |
Vodafone 945 (ZTE Joe) |
1999 |
600 |
240x400 |
3.2 |
512 |
512 |
Huawei |
Vodafone 858 Smart (U8160) |
2177 |
528 |
240x320 |
2.8 |
512 |
256 |
Alcatel |
T-Mobile Move (OT 908) |
2294 |
600 |
240x320 |
2.8 |
512 |
512 |
Samsung |
Galaxy Y (S5360) |
2495 |
832 |
240x320 |
3 |
512 |
256 |
ZTE |
Racer II (Arizona) |
2536 |
500 |
240x320 |
2.8 |
512 |
256 |
Huawei |
Ideos X1 (U8180, Orange Stockholm) |
2549 |
528 |
240x320 |
2.8 |
512 |
256 |
Huawei |
U8100 |
2595 |
528 |
240x320 |
2.8 |
512 |
256 |
Huawei |
U8500 |
2699 |
600 |
320x480 |
3.2 |
512 |
256 |
Samsung |
Galaxy Mini (S5570) |
2799 |
600 |
240x320 |
3.14 |
512 |
256 |
Samsung |
Galaxy 5, 550 (i5500) |
2855 |
600 |
240x320 |
2.8 |
512 |
256 |
LG |
Optimus Me (P350) |
2924 |
600 |
240x320 |
2.8 |
512 |
512 |
SE |
Xperia X8 |
2977 |
600 |
320x480 |
3 |
512 |
256 |
Gigabyte |
GSmart G1310 (Roy) |
2990 |
528 |
320x480 |
3.2 |
512 |
256 |
MyPhone |
A210 |
2990 |
624 |
240x400 |
3 |
256 |
128 |
ZTE |
Orange San Francisco (ZTE Blade, U880, P729V) |
2999 |
600 |
480x800 |
3.5 |
512 |
512 |
HTC |
Explorer (Pico) |
3104 |
600 |
320x480 |
3.2 |
512 |
512 |
Huawei |
U8650 (Sonic) |
3290 |
600 |
320x480 |
3.5 |
512 |
256 |
Huawei |
Ideos X3 (U8510, Blaze) |
3377 |
600 |
320x480 |
3.2 |
512 |
256 |
Samsung |
Galaxy Y Pro (B5510) |
3390 |
832 |
240x320 |
2.6 |
|
|
Gigabyte |
GSmart G1317D (Rola) |
3504 |
528 |
240x400 |
3.2 |
512 |
256 |
SE |
Xperia Live Walkman (WT19i) |
3554 |
1000 |
320x480 |
3.2 |
1024 |
512 |
Huawei |
T-Mobile Comet (Ideos, U8150) |
3600 |
528 |
240x320 |
2.8 |
512 |
256 |
SE |
Xperia X10 mini pro (U20i, Mimmi) |
3777 |
600 |
240x320 |
2.55 |
512 |
256 |
LG |
Optimus Swift (GT540) |
3800 |
600 |
320x480 |
3 |
512 |
256 |
SE |
Xperia Mini (ST15) |
3800 |
1000 |
320x480 |
3 |
1024 |
512 |
LG |
Optimus One (P500) |
3919 |
600 |
320x480 |
3.2 |
512 |
512 |
LG |
Optimus Pro |
3928 |
800 |
240x320 |
2.8 |
512 |
256 |
HTC |
Wildfire (Buzz, Mocha, A3333) |
3999 |
528 |
240x320 |
3.2 |
512 |
384 |
LG |
Optimus Net (P690) |
4108 |
800 |
320x480 |
3.2 |
512 |
512 |
Samsung |
Galaxy Gio (S5660) |
4185 |
800 |
320x480 |
3.2 |
512 |
384 |
LG |
Optimus Hub (Univa) |
4195 |
800 |
320x480 |
3.5 |
512 |
512 |
SE |
Xperia X10 mini (E10i, Robyn) |
4195 |
600 |
240x320 |
2.55 |
512 |
256 |
Samsung |
Galaxy 3, 580, Taos (i5800) |
4500 |
667 |
240x400 |
3.2 |
512 |
256 |
Samsung |
Galaxy Ace+ (S7500) |
4550 |
1000 |
320x480 |
3.65 |
4096 |
512 |
LG |
Optimus Chic (E720) |
4550 |
600 |
320x480 |
3.2 |
512 |
512 |
Samsung |
Galaxy 551 (i5510) |
4577 |
667 |
240x400 |
3.2 |
512 |
512 |
Motrolola |
Liquid Mini E310 |
4600 |
600 |
320x480 |
3.2 |
512 |
512 |
HTC |
Wildfire S (Marvell) |
4777 |
600 |
320x480 |
3.2 |
512 |
512 |
Verzo |
Kinzo |
4799 |
1000 |
480x800 |
4.3 |
512 |
512 |
Samsung |
Galaxy Ace (S5830) |
4800 |
800 |
320x480 |
3.5 |
512 |
256 |
Motorola |
Defy mini |
4800 |
600 |
320x480 |
3.2 |
512 |
512 |
Samsung |
Galaxy Spica, Portal, Lite (i5700) |
4800 |
800 |
320x480 |
3.2 |
512 |
256 |
HTC |
Gratia (A6380, Liberty, Aria) |
4937 |
480 |
320x480 |
3.2 |
512 |
384 |
SE |
Xperia mini pro (SK17i, Mango) |
4944 |
1000 |
320x480 |
3 |
1024 |
320 |
Huawei |
Ideos X5 (U8800) |
4977 |
800 |
480x800 |
3.8 |
4096 |
512 |
HTC |
Salsa (C510e) |
4990 |
600 |
320x480 |
3.4 |
576 |
512 |
Huawei |
Boulder |
4998 |
528 |
240x320 |
2.6 |
512 |
256 |
ZTE |
Orange Monte Carlo (ZTE Skate) |
5177 |
800 |
480x800 |
4.3 |
512 |
512 |
Samsung |
Galaxy S (i9000) |
5300 |
1000 |
480x800 |
4 |
15600 |
512 |
Gigabyte |
GSmart G1315 |
5490 |
528 |
320x480 |
3.5 |
512 |
256 |
SE |
Xperia Active |
5500 |
1000 |
320x480 |
3 |
1024 |
512 |
Samsung |
Google Nexus One |
5750 |
1000 |
480x800 |
3.7 |
512 |
512 |
HTC |
Desire (A8181, Bravo) |
5999 |
1000 |
480x800 |
3.7 |
576 |
512 |
LG |
Optimus Black (P970) |
6000 |
1000 |
480x800 |
4 |
1908 |
512 |
SE |
Xperia Play |
6000 |
1000 |
480x854 |
4 |
|
|
LG |
Optimus Sol (Victor, E730) |
6000 |
1000 |
480x800 |
3.8 |
2048 |
512 |
Acer |
Liquid Metal S120 |
6061 |
800 |
480x800 |
3.6 |
512 |
512 |
Samsung |
Google Nexus S |
6200 |
1000 |
480x800 |
4 |
15600 |
512 |
HTC |
Desire Z (A7272, Vision) |
6200 |
800 |
480x800 |
3.7 |
1536 |
512 |
Samsung |
Galaxy W (i8150, Ancora) |
6200 |
1400 |
480x800 |
3.7 |
4096 |
512 |
SE |
Xperia Ray (ST18i) |
6344 |
1000 |
480x854 |
3.3 |
1024 |
512 |
Motorola |
Defy (MB525, Jordan) |
6377 |
800 |
480x854 |
3.7 |
1908 |
512 |
Motorola |
Defy + (MB526) |
6377 |
1000 |
480x854 |
3.7 |
1908 |
512 |
Samsung |
Galaxy XCover (S5690) |
6399 |
800 |
320x480 |
3.65 |
512 |
512 |
Gigabyte |
GSmart G1345 |
6490 |
800 |
320x480 |
3.5 |
512 |
512 |
HTC |
Evo 3D |
6500 |
1200 |
540x960 |
4.3 |
1024 |
1024 |
HTC |
Desire HD (Ace) |
6500 |
1000 |
480x800 |
4.3 |
1900 |
768 |
Huawei |
Honour (U8660) |
6500 |
1400 |
480x854 |
4 |
4096 |
512 |
SE |
Xperia Neo |
6590 |
1000 |
480x854 |
3.7 |
1024 |
512 |
HTC |
Legend (A6363) |
6784 |
600 |
320x480 |
3.2 |
512 |
384 |
Huawei |
Vision (U8850) |
6999 |
1000 |
480x800 |
3.7 |
2048 |
512 |
SE |
Xperia Arc (LT15i) |
7390 |
1000 |
480x854 |
4.2 |
1024 |
512 |
SE |
Xperia Pro (MK16i) |
7890 |
1000 |
480x854 |
3.7 |
1024 |
512 |
HTC |
Hero |
7975 |
528 |
320x480 |
3.2 |
288 |
512 |
SE |
Xperia Arc S (LT18i) |
8590 |
1400 |
480x854 |
4.2 |
1024 |
512 |
Samsung |
Xperia Live Walkman (WT19i) |
9700 |
1500 |
480x800 |
4.3 |
16000 |
1024 |
Motorola |
Droid Razr |
11800 |
1200 |
540x960 |
4.3 |
15600 |
1024 |
R.string to string Android source code
R.array to string [] Android source code
R.array to string [] Android source code
String s = getResources().getString(R.string.my_string); // Hello world!!
String[] arrayOfStrings = getResources().getStringArray(R.array.my_array); // one, two
<xml version="1.0" encoding="utf-8">
<resources>
<string-array name="my_array">
<item>one</item>
<item>two</item>
</string-array>
<string name="my_string">Hello world!!</string>
</resources>
////www.apache.org/licenses/LICENSE-2.0
private Paint mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
private ColorMatrix mCM = new ColorMatrix();
private Bitmap mBitmap;
private float mSaturation;
private float mAngle;
//..........
mBitmap = BitmapFactory.decodeResource(context.getResources(),
R.drawable.my_image);
//..........
private static void setContrastScaleOnly(ColorMatrix cm, float contrast) {
float scale = contrast + 1.f;
float translate = (-.5f * scale + .5f) * 255.f;
cm.set(new float[] {
scale, 0, 0, 0, 0,
0, scale, 0, 0, 0,
0, 0, scale, 0, 0,
0, 0, 0, 1, 0 });
}
private static void setContrast(ColorMatrix cm, float contrast) {
float scale = contrast + 1.f;
float translate = (-.5f * scale + .5f) * 255.f;
cm.set(new float[] {
scale, 0, 0, 0, translate,
0, scale, 0, 0, translate,
0, 0, scale, 0, translate,
0, 0, 0, 1, 0 });
}
private static void setContrastTranslateOnly(ColorMatrix cm, float contrast) {
float scale = contrast + 1.f;
float translate = (-.5f * scale + .5f) * 255.f;
cm.set(new float[] {
1, 0, 0, 0, translate,
0, 1, 0, 0, translate,
0, 0, 1, 0, translate,
0, 0, 0, 1, 0 });
}
@Override protected void onDraw(Canvas canvas) {
Paint paint = mPaint;
float x = 20;
float y = 20;
canvas.drawColor(Color.WHITE);
paint.setColorFilter(null);
canvas.drawBitmap(mBitmap, x, y, paint);
ColorMatrix cm = new ColorMatrix();
mAngle += 2;
if (mAngle > 180) {
mAngle = 0;
}
//convert our animated angle [-180...180] to a contrast value of [-1..1]
float contrast = mAngle / 180.f;
setContrast(cm, contrast);
paint.setColorFilter(new ColorMatrixColorFilter(cm));
canvas.drawBitmap(mBitmap, x + mBitmap.getWidth() + 10, y, paint);
setContrastScaleOnly(cm, contrast);
paint.setColorFilter(new ColorMatrixColorFilter(cm));
canvas.drawBitmap(mBitmap, x, y + mBitmap.getHeight() + 10, paint);
setContrastTranslateOnly(cm, contrast);
paint.setColorFilter(new ColorMatrixColorFilter(cm));
canvas.drawBitmap(mBitmap, x, y + 2*(mBitmap.getHeight() + 10),
paint);
invalidate();
}
}
Editace: 2016-06-28 14:36:04
Počet článků v kategorii: 396
Url:2-fragments-tutorial-mainactivity-czech-language