Meter Group
Bir ölçüm grubu: bir bütünün birkaç miktarı, tek bir çubukta yan yana. Bir depolamanın neyle dolduğu, bir bütçenin nasıl harcandığı: parçalar birbirine ve kalana göre okunur.
import com.pantrixui.components.chart.metergroup.PantrixMeterGroup
- Değerler. Bir parçanın değeri
maxile aynı birimdendir. Değeri olmayan ya da sıfırı aşmayan parça çubukta yer almaz, lejantta adı durur. Parçaların toplamımax'i aşarsa fazlası çubuğun ucunda kesilir. - Lejant. Her parçanın adını, ardından değerini, renginin yanında yazar. Çubuğun üstünde ya da altında durur: başta duran lejant üstte, sonda duran altta sayılır. Kayıtları burada anahtar değildir: çubuk kendisine verileni gösterir.
- Yazım.
formatbir değerin lejantta nasıl yazılacağını söyler; verilmezse temanın diliyle sayı olarak yazılır. - Yön. Sağdan sola okunan dilde ilk parça sağda durur.
- Dışa aktarma.
exportgrafiğin üstüne bir düğme koyar: grafik ekrandaki hâliyle, gösterilen yer ve tooltip olmadan, PNG, SVG ya da PDF dosyası olarak üretilir ve uygulamaya verilir. - Otomasyon.
MeterGroup_<tagKey>; çubuk.Bar, lejantın kayıtları.Legend_<parçanın anahtarı>.
Örnekler
Bir bütünü dolduranlar
En yalın hâli: altmış dört gigabaytlık bir depolamayı dolduran dört şey. Çubuğun dolmayan ucu boş kalan yeri gösterir; lejant her parçayı değeriyle yazar.
PantrixMeterGroup(
items = METER_STORAGE,
max = 64,
format = { "${it.toInt()} GB" },
description = "Depolama",
tagKey = "plain"
)
private val METER_STORAGE = listOf(
MeterItem("apps", "Uygulamalar", 16),
MeterItem("photos", "Fotoğraflar", 24),
MeterItem("messages", "Mesajlar", 8),
MeterItem("system", "Sistem", 10)
)
Lejant üstte
Lejant çubuğun üstünde ve satırın başında (ChartLegend(position = Top, alignment = Start)). Değerler bütünün payı olarak, temanın diliyle yazılıyor.
val strings = PantrixTheme.strings
PantrixMeterGroup(
items = METER_BUDGET,
format = { strings.percent(it / 100) },
legend = ChartLegend(position = ChartLegendPosition.Top, alignment = ChartLegendAlignment.Start),
description = "Bütçenin dağılımı",
tagKey = "legend_above"
)
private val METER_BUDGET = listOf(
MeterItem("rent", "Kira", 40),
MeterItem("food", "Mutfak", 25),
MeterItem("transport", "Ulaşım", 15),
MeterItem("savings", "Birikim", 20)
)
Yalnızca çubuk
Lejantsız bir çubuk (legend = null): bir satırın içinde, yanındaki yazı neyi gösterdiğini zaten söylerken. Ekran okuyucu parçaları çubuğun kendisinden duyar.
PantrixMeterGroup(
items = METER_STORAGE,
max = 64,
format = { "${it.toInt()} GB" },
legend = null,
description = "Depolama",
tagKey = "bar_only"
)
private val METER_STORAGE = listOf(
MeterItem("apps", "Uygulamalar", 16),
MeterItem("photos", "Fotoğraflar", 24),
MeterItem("messages", "Mesajlar", 8),
MeterItem("system", "Sistem", 10)
)
Kendi renklerin ve ölçülerin
Bir çubuğun kendi görünüşü: her parça kendi rengini söylüyor, çubuk daha kalın (meterHeight), uçları köşeli (barRadius) ve parçaların arası kapalı (sliceGap). Verilmeyen alan temanınki kalır.
val violet = PantrixPalette.Violet
PantrixMeterGroup(
items = listOf(
MeterItem("done", "Biten", 18, color = violet.shade700),
MeterItem("doing", "Süren", 9, color = violet.shade500),
MeterItem("waiting", "Bekleyen", 13, color = violet.shade300)
),
max = 40,
description = "İşlerin durumu",
style = ChartStyle(meterHeight = 16.dp, barRadius = 0.dp, sliceGap = 0.dp),
tagKey = "own_look"
)
Dışa aktarma
export = ChartExport(...) grafiğin üstüne bir dışa aktarma düğmesi koyar: bas ve türü seç (PNG, SVG ya da PDF). Grafik dosyayı üretir ve onExport'a verir; altta adı ve boyu, PNG ise resmi görünür, "Dosyayı kaydet" onu platformun yoluyla verir.
Dosyada çubuk ve altında lejant durur: her parçanın adı ve değeri.
var file by remember { mutableStateOf<ChartExportFile?>(null) }
PantrixMeterGroup(
items = METER_STORAGE,
max = 64,
format = { "${it.toInt()} GB" },
description = "Depolama",
tagKey = "exported",
export = ChartExport(fileName = "depolama") { file = it }
)
ExportedFile(file, tagKey = "exported")
private val METER_STORAGE = listOf(
MeterItem("apps", "Uygulamalar", 16),
MeterItem("photos", "Fotoğraflar", 24),
MeterItem("messages", "Mesajlar", 8),
MeterItem("system", "Sistem", 10)
)
API
items
Bir ölçüm grubu: bir bütünün birkaç miktarı, tek bir çubukta yan yana. Bir depolamanın neyle dolduğu, bir bütçenin nasıl harcandığı: parçalar birbirine ve kalana göre okunur.
| Parametre | Tür | Varsayılan | Ne olduğu |
|---|---|---|---|
items | List<MeterItem> | miktarlar, çubukta durdukları sırayla. Anahtarları onları birbirinden ayırır; aynı anahtarı taşıyan iki parça reddedilir. | |
modifier | Modifier | Modifier | grubun modifier'ı. |
max | Number | 100 | çubuğun tamamının ne kadar olduğu: sıfırdan büyük. |
format | ((Double) -> String)? | null | bir değerin lejantta nasıl yazıldığı. Verilmezse temanın diliyle sayı olarak yazılır. |
legend | ChartLegend? | ChartLegend() | parçaların adlarının durduğu yer: çubuğun üstü ya da altı. null hiçbirini göstermez. |
description | String? | null | çubuğun neyi ölçtüğü, birkaç sözcükle, ekran okuyucu için. |
style | ChartStyle? | null | bu grubun kendi geometrisi: burada verilen alanlar, gerisi temanınkiyle. |
colors | ChartColors? | null | bu grubun kendi renkleri, temanınkiler olmadıkları yerde. |
tagKey | String? | null | grubun otomasyon anahtarı: grup MeterGroup_<tagKey>, çubuğu MeterGroup_<tagKey>.Bar ve bir parçanın lejant kaydı MeterGroup_<tagKey>.Legend_<item's key> olur. |
export | ChartExport? | null | grafiği uygulamanın dışına PNG, SVG ya da PDF olarak çıkarmayı sağlayan şey: grafiğin üstündeki bir düğme onun o anki hâlinin dosyasını üretip verir (bkz. ChartExport). null, grafikte böyle bir düğme yoktur. Lejant dosyada çubuğun altında durur. |
ChartStyle
Bir grafiğin geometrisi: hiçbir şey söylemediğinde ne kadar yüksek olduğu, çizgilerinin ne kadar kalın, işaretlerinin ne kadar büyük olduğu ve parçalarının arasındaki boşluk; ve dolgularının renklerinin yanında desen alıp almadığı.
| Parametre | Tür | Varsayılan | Ne olduğu |
|---|---|---|---|
height | Dp | Dp.Unspecified | Grafiğin modifier'ı ona bir yükseklik vermediğinde çizim alanının, eksenleriyle birlikte, ne kadar yüksek olduğu. Çizim alanının üstündeki ya da altındaki bir lejant kendi yüksekliğini ekler. |
lineWidth | Dp | Dp.Unspecified | Bir serinin çizgisinin kalınlığı. |
markerSize | Dp | Dp.Unspecified | Bir noktadaki işaretin genişliği ve yüksekliği. |
selectedMarkerSize | Dp | Dp.Unspecified | Aynısı, gösterilen noktadaki işaret için. |
gridWidth | Dp | Dp.Unspecified | Kılavuz çizgilerinin, eksenler boyunca çizilen çizgilerin ve gösterilen yeri işaretleyen çizginin kalınlığı. Sıfır hiçbirini çizmez. |
labelGap | Dp | Dp.Unspecified | Çizim alanıyla yanına ve altına yazılanın arası, ve onunla bir eksenin başlığının arası. |
tickSpacing | Dp | Dp.Unspecified | Değerlerin ekseni boyunca işaretlenen iki değerin arasındaki en az boşluk: eksen söylemediğinde kaç tanesinin işaretleneceğine karar veren şey. |
legendGap | Dp | Dp.Unspecified | Lejantla yanında durduğu grafiğin arası. |
legendItemGap | Dp | Dp.Unspecified | Lejantın bir kaydıyla sonrakinin arası. |
swatchSize | Dp | Dp.Unspecified | Bir serinin lejanttaki ve tooltip'teki örneğinin ne kadar geniş olduğu: çizgisinin kısa bir parçası ya da dolgusunun bir yaması. |
swatchGap | Dp | Dp.Unspecified | O örnekle ardındaki adın arası. |
tooltipShape | ShapeSpec | ShapeSpec.Unspecified | Tooltip'in köşeleri: markanın şekil ölçeğinin bir basamağı ya da sabit bir şekil. |
tooltipHorizontalPadding | Dp | Dp.Unspecified | Tooltip'in yanlarıyla içindekinin arası. |
tooltipVerticalPadding | Dp | Dp.Unspecified | Üstü ve altıyla içindekinin arası, ve başlığıyla satırlarının arası. |
tooltipGap | Dp | Dp.Unspecified | Gösterilen yerle yanındaki tooltip'in arası. |
tooltipElevation | Dp | Dp.Unspecified | Tooltip'in gölgesi. |
barGap | Dp | Dp.Unspecified | Bir yerde yan yana duran iki çubuğun arası. Bunun için fazla ince olan çubuklar daha yakın durur. |
barMaxWidth | Dp | Dp.Unspecified | Bir çubuğun en fazla ne kadar geniş olduğu, yerinin ne kadar yeri olursa olsun: üç yerli bir grafik üç kalas değildir. |
barRadius | Dp | Dp.Unspecified | Bir çubuğun ucunun, sıfırdan uzak ucunun, köşelerinin ne kadar yuvarlak olduğu. |
sliceGap | Dp | Dp.Unspecified | Bir pastanın yan yana duran iki dilimi arasında; pastanın ortasından kenarına kadar aynı genişlikte. |
selectedSliceOffset | Dp | Dp.Unspecified | Bir pastanın gösterilen diliminin, pastanın kenarından ne kadar dışarı taştığı. Pasta çevresinde bu kadar yer bırakır: dilimin duracağı yer olsun. |
gaugeWidth | Dp | Dp.Unspecified | Bir göstergenin yayının kalınlığı. Bir yay, yarıçapının yarısından kalın olmaz. |
meterHeight | Dp | Dp.Unspecified | Bir ölçüm grubunun çubuğunun yüksekliği. |
trackerHeight | Dp | Dp.Unspecified | Bir durum izleyicinin bloklarının yüksekliği. |
bubbleMinSize | Dp | Dp.Unspecified | Bir saçılım grafiğinin en küçük balonunun genişliği: büyüklüğü hiç olmayan ya da bir alan olarak görülemeyecek kadar az olan nokta da bir noktadır. |
bubbleMaxSize | Dp | Dp.Unspecified | En büyük balonunun genişliği: büyüklüğü grafiğin en büyüğü olanın. |
navigatorHeight | Dp | Dp.Unspecified | Zoom'unda gezgin şeridi olan bir grafikte, çizim alanının altındaki şeridin yüksekliği: grafiğin görünen kısmı onun üstünde işaretlenir ve kaydırılır. Yerleri yanından aşağı dizilen grafikte şerit çizim alanının yanında durur ve bu onun genişliğidir. |
barBandShare | Float | Float.NaN | Bir yerin çubuklarının bandından aldığı pay, sıfırdan çok ve en fazla bir: kalanı bir yerin çubuklarıyla sonrakininkiler arasındaki boşluktur. Çubuklar yine de barMaxWidth'ten geniş olmaz. |
markLineWidth | Dp | Dp.Unspecified | Bir işaretin çizgisinin kalınlığı: bir hedefin, bir sınırın, bir günün. Sıfır çizgi çizmez; işaretin yazısı yine yazılır. |
markBandAlpha | Float | Float.NaN | Bir işaretin bandının renginin ne kadarıyla çizildiği, sıfırdan bire: bant serilerin arkasında durur ve bir tondur. |
patterns | Boolean? | null | Bir grafiğin serilerinin, dilimlerinin ve karolarının dolgularının renklerinin yanında desenlerle, çizgilerinin de sırayla kesik çizilip çizilmediği (ChartPattern): renkleri ayırt edemeyen bir okuyucu için onları ayıran şey. Verilmezse sistemin ayarına uyulur: sistem şeyleri renksiz ayırt etmeye ayarlıysa açık (iOS'ta "Differentiate Without Color", Android'de renk düzeltme), değilse kapalı. |
nodeWidth | Dp | Dp.Unspecified | Bir sankey düğümünün ne kadar geniş olduğu. |
nodeGap | Dp | Dp.Unspecified | Bir sankey kolonunun iki düğümü arası. |
ChartColors
Temanın renklerini almayan bir grafik için, onun neyle boyandığı: verilen renk kullanılır, verilmeyen temanınki kalır.
| Parametre | Tür | Varsayılan | Ne olduğu |
|---|---|---|---|
series | List<Color> | emptyList() | Serilerin çizildiği renkler, dağıtıldıkları sırayla, kendi rengini söylemeyen seriler için. Boşsa temanın grafik renkleridir. |
grid | Color | Color.Unspecified | Bir eksenin işaretlerinde grafik boyunca çizilen çizgiler. Temanın divider'ı. |
axis | Color | Color.Unspecified | Bir eksen boyunca çizilen çizgi. Temanın border'ı. |
label | Color | Color.Unspecified | Eksenlerin yanına yazılanlar: değerler, yerler ve eksenlerin başlıkları, bir de lejanttaki adlar. Temanın textSecondary'si. |
crosshair | Color | Color.Unspecified | Gösterilen yeri işaretleyen çizgi. Temanın borderHover'ı: içinden geçtiği kılavuz çizgilerinden güçlü, arkasında durduğu serilerden sessiz. |
tooltipContainer | Color | Color.Unspecified | Tooltip'in dolgusu. Temanın surface'i. |
tooltipBorder | Color | Color.Unspecified | Tooltip'in kenarı. Temanın border'ı. |
tooltipText | Color | Color.Unspecified | Tooltip'in başlığı ve değerleri. Temanın textPrimary'si. |
tooltipLabel | Color | Color.Unspecified | Tooltip'teki seri adları. Temanın textSecondary'si. |
rising | Color | Color.Unspecified | Yukarı giden bir değerin çizildiği renk: bir şelalenin ekleyen adımı. Temanın success'i. |
falling | Color | Color.Unspecified | Aşağı giden bir değerin çizildiği renk: bir şelalenin götüren adımı. Temanın danger'ı. |
Erişilebilirlik
- Ekran okuyucu. Çubuk
description'ıyla bir resimdir; parçaları lejantın kayıtları söyler. Lejantı olmayan çubuk parçalarını kendisi söyler.