Best Studio 1
Best Studio
D 1
delimuratt
Aliyldrim 1
Aliyldrim
Mt2Hizmet 1
Mt2Hizmet
noisiv 1
noisiv
Manwe Work 1
Manwe Work
melankolıa18 1
melankolıa18
Agora Metin2 1
Agora Metin2
Cannn6161 1
Cannn6161
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

Altın Konu Android 12 Beta - Widget İyileştirmeleri [KAYNAK] | Mobil

sergioneral

enjoy the silence 👌
Telefon Numarası Onaylanmış Üye TC Kimlik Numarası Doğrulanmış Üye
Fahri Üye
Katılım
17 Haz 2010
Konular
3,640
Mesajlar
19,614
Çözüm
54
Online süresi
17d 14h
Reaksiyon Skoru
4,815
Altın Konu
163
TM Yaşı
15 Yıl 11 Ay 25 Gün
Başarım Puanı
474
Yaş
31
MmoLira
-933
DevLira
0
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

Android 12, platformda ve başlatıcılarda kullanıcı ve geliştirici deneyimini iyileştirmek için mevcut Widgets API'sini yeniliyor. Widget'ınızın Android 12 ile uyumlu olduğundan nasıl emin olacağınızı öğrenmek ve ayrıca mevcut widget'ınızı yenilemek için API'ler için bir referans olarak bu kılavuzu kullanın.

widget-intro.png

Android 12'deki widget'ların köşeleri yuvarlatılmıştır. Android 12 veya sonraki sürümleri çalıştıran bir cihazda bir uygulama widget'ı kullanıldığında, başlatıcı widget'ın arka planını otomatik olarak tanımlar ve onu köşeleri yuvarlatacak şekilde kırpar.

Bu senaryoda, pencere aracınız aşağıdaki koşulların hiçbirinde düzgün görüntülenmeyebilir:
  • Widget, köşelerde içerik barındırıyor: Bu, köşe alanındaki bazı içeriğin kırpılmasına neden olabilir.​
  • Widget, kırpılmaya duyarlı olmayan bir arka plan kullanır. Bu, şeffaf bir arka plan, boş görünümler veya düzenler ya da kırpılmaya eğilimli olmayan diğer özel arka plan türlerini içerir. Sistem, kullanılacak arka planı doğru şekilde tanımlayamayabilir.​
Widget'ınız bu değişiklikten etkilenecekse, düzgün görüntülendiğinden emin olmak için onu köşeleri yuvarlatılmış (aşağıdaki bölümde açıklandığı gibi) yenilemenizi öneririz.


Dikkat: Köşe yarıçapının boyutu hem cihaz üreticileri (16dp'ye kadar) hem de üçüncü taraf başlatıcılar tarafından kontrol edilebildiğinden, yuvarlatılmış köşelerin boyutları cihazlar arasında farklılık gösterebilir. Tatmin edici olmayan sonuçlardan kaçınmak için widget'ı yenilemenizi öneririz.


Örneği kullan

Yuvarlatılmış köşeler uygulayın


Android 12, widget'ınızın yuvarlatılmış köşelerinin yarıçapını ayarlamak için aşağıdaki sistem parametrelerini sunar:
  • Kod:
    system_app_widget_background_radius
    : Widget arka planının hiçbir zaman 28 dp'den büyük olmayacak köşe yarıçapı.​
  • Kod:
    system_app_widget_inner_radius
    : Widget içindeki herhangi bir görünümün köşe yarıçapı. Bu, 8dp dolgu kullanırken güzel bir şekilde hizalamak için arka plan yarıçapından tam olarak 8dp daha azdır.​
Aşağıdaki örnek, pencere aracının köşesi için
Kod:
system_app_widget_background_radius
ve pencere aracının içindeki görünümler için system_app_widget_inner_radius kullanan bir pencere aracını göstermektedir.
widget-weather.png

  1. Widget'ın köşesi.
  2. Widget içindeki bir görünümün köşesi.

Dikkat: Bu parametreler, deneyimleri uyarlamayı amaçlayan cihaz üreticileri veya üçüncü taraf başlatıcılar tarafından geçersiz kılınabilir.


Yuvarlatılmış köşelerle geriye dönük uyumluluk

Widget'ın önceki Android sürümleriyle uyumlu olduğundan emin olmak için, aşağıdaki XML dosyası örneklerinde gösterildiği gibi, Android 12 için özel öznitelikler tanımlamanızı ve bunları geçersiz kılmak üzere özel bir tema kullanmanızı öneririz:

[CODE lang="css" title="/values/attrs.xml"]<resources>
<attr name="backgroundRadius" format="dimension" />
</resources>[/CODE]

[CODE lang="css" title="/values/styles.xml"]<resources>
<style name="MyWidgetTheme">
<item name="backgroundRadius">@dimen/my_background_radius_dimen</item>
</style>
</resources>[/CODE]

[CODE lang="css" title="/values-31/styles.xml"]<resources>
<style name="MyWidgetTheme" parent="@android:style/Theme.DeviceDefault.DayNight">
<item name="backgroundRadius">@android:dimen/system_app_widget_background_radius</item>
</style>
</resources>[/CODE]

[CODE lang="css" title="/drawable/my_widget.xml"]<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="?attr/backgroundRadius" />
...
</shape>[/CODE]

[CODE lang="css" title="/layout/my_widget_layout.xml"]<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
...
android:background="@drawable/my_widget_background" />[/CODE]

Dinamik renkler uygula

Android 12'de bir widget, düğmeler, arka planlar ve diğer bileşenler için cihaz tema renklerini kullanabilir. Bu, farklı widget'lar arasında daha yumuşak geçişler ve tutarlılık sağlar.

Aşağıdaki örnekte, cihaz teması rengi "kahverengimsi" olup, vurgu renginin ve widget arka planının uyum sağlamasına neden olur. Bunu, sistemin varsayılan temasını (
Kod:
@android:style/Theme.DeviceDefault.DayNight
) ve renk özniteliklerini kullanarak başarabilirsiniz. Yaygın olarak kullanılan bazı renk özellikleri şunlardır:
  • Kod:
    ?android:attr/colorAccent
  • Kod:
    ?android:attr/colorBackground
  • Kod:
    ?android:attr/textColorPrimary and ?android:attr/textColorSecondary
widget-example-lightmode.png
widget-example-darkmode.png

Widget normal tema - Widget karanlık tema
Dinamik renklerle geriye dönük uyumluluk

Android 12 için özel bir tema oluşturmanızı ve onu geçersiz kılmanızı öneririz. Aşağıdaki örnekler, bunun çeşitli XML dosyalarıyla nasıl yapılacağını gösterir:

[CODE lang="css" title="/values/styles.xml"]<resources>
<style name="MyWidget.TextView">
<item name="android:textColor">@color/my_text_color</item>
</style>
<style name="MyWidgetTheme">
<item name="textViewStyle">@style/MyWidget.TextView</item>
</style>
</resources>[/CODE]

[CODE lang="css" title="/values-31/styles.xml"]<resources>
<style name="MyWidgetTheme" parent="Theme.DeviceDefault.DayNight" />
</resources>[/CODE]

[CODE lang="css" title="/layout/my_widget_layout.xml"]<resources>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
...
android:theme="@style/MyWidgetTheme" />
</resources>[/CODE]

Widget'ları kişiselleştirmeyi kolaylaştırın

appwidget-provider'ın configure özniteliği ile bir yapılandırma etkinliği belirtirseniz, App Widget ana bilgisayarı, bir kullanıcı pencere öğesini ana ekranına ekledikten hemen sonra bu etkinliği başlatır.

Android 12, kullanıcılar için daha iyi bir yapılandırma deneyimi sağlamanıza olanak tanıyan yeni seçenekler ekler.

Kullanıcıların yerleştirilmiş widget'ları yeniden yapılandırmasına izin verin

Yeniden yapılandırılabilir olarak etiketlenen widget'ları yapılandırmak için kullanıcılar widget'a uzun süre basabilir. Bu, ayarları değiştirmek için dokunabilecekleri bir Yeniden Yapılandır düğmesi görüntüler.

widget-reconfigure-button.png

  1. Yeniden yapılandır düğmesi.
Appwidget-provider'ın widgetFeatures özniteliğinde yeniden yapılandırılabilir bayrağı belirtin:

CSS:
<appwidget-provider
  ...
  android:configure="com.myapp.WidgetConfigActivity"
  android:widgetFeatures="reconfigurable">
</appwidget-provider>


Not: Yeniden yapılandırılabilir bayrak Android 9'da (API seviyesi 28) tanıtıldı, ancak Android 12'ye kadar başlatıcılarda yaygın olarak desteklenmiyordu.


Widget'ın varsayılan yapılandırmasını kullanın

Widget'ınızın bir kullanıcı eklediğinde varsayılan konfigürasyonunu kullanmasını istiyorsanız, widgetFeatures alanında hem
Kod:
configuration_optional
hem de
Kod:
reconfigurable
bayrakları belirterek konfigürasyon adımını atlayabilirsiniz. Bu, bir kullanıcı widget'ı ekledikten sonra yapılandırma etkinliğini başlatmayı atlar. (Daha önce belirtildiği gibi, kullanıcı daha sonra widget'ı yeniden yapılandırabilir.)

Örneğin, bir saat widget'ı ilk yapılandırmayı atlayabilir ve varsayılan olarak cihazın saat dilimini gösterebilir.

CSS:
<appwidget-provider
  ...
  android:configure="com.myapp.WidgetConfigActivity"
  android:widgetFeatures="reconfigurable|configuration_optional">
</appwidget-provider>

Widget yapılandırma seçenekleriyle geriye dönük uyumluluk

Uygulamanız, önceki Android sürümlerindeki
Kod:
configuration_optional
ve
Kod:
reconfigurable
bayrakları kullanabilir. Ancak, bu bayrakların herhangi bir etkisi olmayacak ve sistem yine de yapılandırma etkinliğini başlatacaktır.

Yeni bileşik düğmeler ekleyin

Android 12, aşağıdaki mevcut bileşenleri kullanarak durum bilgisi olan davranış için yeni destek ekler:
Widget hala durum bilgisizdir. Başvurunuza başvuruda bulunmanız gerekmektedir.

widget-home.png


Aşağıdaki kod örneği, bu bileşenlerin nasıl uygulanacağını gösterir.

Kod:
// Check the view.
remoteView.setCompoundButtonChecked(R.id.my_checkbox, true)

// Check a radio group.
remoteView.setRadioGroupChecked(R.id.my_radio_group, R.id.radio_button_2)

// Listen for check changes. The intent will have an extra with the key
// EXTRA_CHECKED that specifies the current checked state of the view.
remoteView.setOnCheckedChangeResponse(
  R.id.my_checkbox,
  RemoteViews.RemoteResponse.fromPendingIntent(onCheckedChangePendingIntent)
)

Java:
// Check the view.
remoteView.setCompoundButtonChecked(R.id.my_checkbox, true);

// Check a radio group.
remoteView.setRadioGroupChecked(R.id.my_radio_group, R.id.radio_button_2);

// Listen for check changes. The intent will have an extra with the key
// EXTRA_CHECKED that specifies the current checked state of the view.
remoteView.setOnCheckedChangeResponse(
  R.id.my_checkbox,
  RemoteViews.RemoteResponse.fromPendingIntent(onCheckedChangePendingIntent)
);

Widget bileşik düğmeleriyle geriye dönük uyumluluk

Biri Android 12 veya sonraki sürümünü çalıştıran (
Kod:
res/layout-v31
) ve diğeri Android'in önceki sürümlerini hedefleyen (varsayılan
Kod:
res/layout-v31
res/layout klasöründe) iki farklı düzen sağlayın.

Widget boyutları ve düzenleri için geliştirilmiş API'leri kullanın

Android 12'den başlayarak, aşağıdakileri yaparak daha rafine boyut özellikleri ve daha esnek düzenler sağlayabilirsiniz:
  1. Duyarlı düzenler veya tam düzenler sağlayın
Ek pencere öğesi boyutlandırma kısıtlamalarını belirtin

Android 12, widget'ınızın değişen ekran boyutlarına sahip farklı cihazlarda daha güvenilir bir şekilde boyutlandırılmasını sağlamanıza olanak tanıyan yeni API'ler ekler.

Mevcut
Kod:
minWidth
,
Kod:
minHeight
,
Kod:
minResizeWidth
ve
Kod:
minResizeHeight
özniteliklerine ek olarak aşağıdaki yeni appwidget-provider özniteliklerini kullanın:
  • Kod:
    targetCellWidth
    ve
    Kod:
    targetCellHeight:
    Widget'ın hedef boyutunu başlatıcı ızgara hücreleri açısından tanımlar. Tanımlanmışsa, bu öznitelikler
    Kod:
    minWidth
    veya
    Kod:
    minHeight
    yerine kullanılır.
  • Kod:
    maxResizeWidth
    ve
    Kod:
    maxResizeHeight:
    Başlatıcının, kullanıcının widget'ı yeniden boyutlandırmasına izin verdiği maksimum boyutu tanımlar.
Aşağıdaki XML, boyutlandırma özniteliklerinin nasıl kullanılacağını açıklar.

CSS:
<appwidget-provider
  ...
  android:targetCellWidth="3"
  android:targetCellHeight="2"
  android:maxResizeWidth="250dp"
  android:maxResizeHeight="110dp">
</appwidget-provider>

Duyarlı düzenler sağlayın

Düzenin, widget'ın boyutuna bağlı olarak değişmesi gerekiyorsa, her biri bir dizi boyut için geçerli olan küçük bir düzen kümesi oluşturmanızı öneririz. (Bu mümkün değilse, başka bir seçenek de, çalışma zamanında tam pencere öğesi boyutuna dayalı düzenler sağlamaktır.)

Bu özelliğin uygulanması, daha sorunsuz ölçeklendirme ve genel olarak daha iyi sistem sağlığı sağlar; bunun nedeni, widget'ı farklı bir boyutta her görüntülediğinde sistemin uygulamayı uyandırması gerekmemesidir.

Aşağıdaki kod örneği, bir düzen listesinin nasıl sağlanacağını gösterir.

CSS:
override fun onUpdate(...) {
  val smallView = ...
  val tallView = ...
  val wideView = ...

  val viewMapping: Map<SizeF, RemoteViews> = mapOf(
    SizeF(100f, 100f) to smallView,
    SizeF(100f, 200f) to tallView,
    SizeF(200f, 100f) to wideView
  )
  val remoteViews = RemoteViews(viewMapping)

  appWidgetManager.updateAppWidget(id, remoteViews)
}

Java:
@Override
public void onUpdate(...) {
  RemoteViews smallView = ...;
  RemoteViews tallView = ...;
  RemoteViews wideView = ...;

  Map<SizeF, RemoteViews> viewMapping = new ArrayMap<>();
  viewMapping.put(new SizeF(100f, 100f), smallView);
  viewMapping.put(new SizeF(100f, 200f), tallView);
  viewMapping.put(new SizeF(200f, 100f), wideView);
  RemoteViews remoteViews = new RemoteViews(viewMapping);

  appWidgetManager.updateAppWidget(id, remoteViews);
}

Kesin düzenler sağlayın

Küçük bir duyarlı düzen kümesi uygun değilse, bunun yerine pencere öğesinin gösterildiği boyutlara göre uyarlanmış farklı düzenler sağlayabilirsiniz. Bu genellikle telefonlar için iki boyut (portre ve yatay mod) ve katlanabilirler için dört boyuttur.

Bu çözümü uygulamak için uygulamanızın aşağıdaki adımları gerçekleştirmesi gerekir:
  1. Boyut kümesi değiştiğinde çağrılan aşırı yükle.
  2. Boyutları içeren bir döndüren öğesini çağırın.
  3. Paketten anahtarına erişin.

Not: Boyut listesini sağlamak, başlatıcının sorumluluğundadır. Aygıtta bu alanı desteklemeyen bir başlatıcı varsa, boyut listesi boş veya boş olabilir.


Aşağıdaki kod örneği, tam düzenlerin nasıl sağlanacağını gösterir.

CSS:
// Create the RemoteViews for the given size.
private fun createRemoteViews(size: SizeF): RemoteViews { }

override fun onAppWidgetOptionsChanged(
  context: Context,
  manager: AppWidgetManager,
  id: Int,
  newOptions: Bundle?
) {
  super.onAppWidgetOptionsChanged(context, manager, id, newOptions)
  // Get the new sizes.
  val sizes = newOptions?.getParcelableArrayList<SizeF>(
    AppWidgetManager.OPTION_APPWIDGET_SIZES
  )
  // Check that the list of sizes is provided by the launcher.
  if (sizes.isNullOrEmpty()) {
    return
  }
  // Map the sizes to the desired RemoteViews
  val remoteViews = RemoteViews(sizes.associateWith(::createRemoteViews))
  appWidgetManager.updateAppWidget(id, remoteViews)
}

Java:
// Create the RemoteViews for the given size.
private RemoteViews createRemoteViews(SizeF size) { }

@Override
public void onAppWidgetOptionsChanged(Context context, AppWidgetManager
  appWidgetManager, int appWidgetId, Bundle newOptions) {
    super.onAppWidgetOptionsChanged(context, appWidgetManager, appWidgetId, newOptions);
    // Get the new sizes.
    ArrayList<SizeF> sizes =
      newOptions.getParcelableArrayList(AppWidgetManager.OPTION_APPWIDGET_SIZES);
    // Check that the list of sizes is provided by the launcher.
    if (sizes == null || sizes.isEmpty()) {
      return;
    }
    // Map the sizes to the desired RemoteViews.
    Map<SizesF, RemoteViews> viewMapping = new ArrayMap<>();
    for (SizeF size : sizes) {
      viewMapping.put(size, createRemoteViews(size));
    }
    RemoteViews remoteViews = new RemoteViews(viewMapping);
    appWidgetManager.updateAppWidget(id, remoteViews);
}

Widget düzeni boyutlarıyla geriye dönük uyumluluk

Önceden, , , ve eklerini kullanarak pencere öğesinin boyut aralıklarını almak ve pencere öğesinin boyutunu tahmin etmek mümkündü, ancak bu mantık her durumda çalışmaz. Android 12'yi hedefleyen widget'lar için, daha önce açıklandığı gibi duyarlı veya tam düzenler sağlamaya geçmenizi öneririz.

Uygulamanızın widget seçici deneyimini iyileştirin

Android 12, dinamik pencere öğesi önizlemeleri ve pencere öğesi açıklamaları ekleyerek uygulamanız için pencere öğesi seçici deneyimini geliştirmenize olanak tanır.

Widget seçiciye ölçeklenebilir widget önizlemeleri ekleyin

Android 12'de, widget seçicide görüntülenen widget önizlemesi, widget'ın varsayılan boyutuna ayarlanmış bir XML düzeni olarak sağlayacağınız ölçeklenebilir bir önizlemeden oluşur. Önceden, widget önizlemesi statik çizilebilir bir kaynaktı ve bazı durumlarda önizlemelerin ana ekrana eklendikten sonra widget'ları doğru bir şekilde yansıtmamasına neden oluyordu.

Ölçeklenebilir pencere öğesi önizlemelerini uygulamak için, bunun yerine bir XML düzeni sağlamak için appwidget-provider öğesinin niteliğini kullanın:

CSS:
<appwidget-provider
  ...
  android:previewLayout="@layout/my_widget_preview">
</appwidget-provider>

İdeal olarak, bu, gerçekçi varsayılan veya test değerlerine sahip gerçek pencere öğesiyle aynı düzen olmalıdır.

Ölçeklenebilir widget önizlemeleriyle geriye dönük uyumluluk

Widget seçicileri, widget'ınızın önizlemelerini göstermek üzere Android 11 veya önceki sürümlerde etkinleştirmek için önizlemeImage özniteliğini belirlemeye devam edin.

Java:
<appwidget-provider
  ...
  android:previewLayout="@layout/my_widget_preview">
</appwidget-provider>

Widget'ınız için bir açıklama ekleyin

Android 12'de, isteğe bağlı olarak, widget seçicinin widget'ınız için görüntülenmesi için bir açıklama sağlayabilirsiniz.

widget-description.png


Kod:
appwidget-provider
açıklama özelliğini kullanarak widget'ınız için bir açıklama sağlayın:

CSS:
<appwidget-provider
  ...
  android:description="@string/my_widget_description">
</appwidget-provider>


Not: Karakter sınırlaması yoktur, ancak açıklama için gösterim ve kullanılabilir alan cihaza bağlı olarak farklılık gösterebilir. Mümkün olduğunca kısa olması önemlidir.


Widget açıklamalarıyla geriye dönük uyumluluk

Uygulamanız, Android'in önceki sürümlerinde özelliğini kullanabilir, ancak widget seçicide gösterilmez.

Daha yumuşak geçişleri etkinleştirin

Android 12'de başlatıcılar, bir kullanıcı uygulamanızı bir pencere öğesinden başlattığında daha yumuşak bir geçiş sağlar.

Bu geliştirilmiş geçişi etkinleştirmek için arka plan öğenizi tanımlamak için
Kod:
@android:id/background
veya
Kod:
android.R.id.background
kullanın:

Java:
// Top level layout of the widget.
<LinearLayout
  ...
  android:id="@android:id/background">
</LinearLayout>


Uyarı: Yayın trambolinlerini kullanmaktan kaçının. Android 12'de, bir uygulama, bir widget tıklamasının PendingIntent'inden başlatılmışsa, bir yayın alıcısından veya hizmetten bir etkinlik başlatabilir. Ancak yeni uygulama animasyonu, bir yayın alıcısından veya hizmetten başlatılan uygulamalar için kullanılmayacak ve bu da kötü bir kullanıcı deneyimine yol açacaktır.


Daha yumuşak geçişlerle geriye dönük uyumluluk

Uygulamanız, Android'in önceki sürümlerinde
Kod:
@android:id/background
kullanabilir, ancak bunun herhangi bir etkisi olmaz.

Basitleştirilmiş RemoteViews koleksiyonlarını kullanın

Android 12, ) yöntemini ekler; bu, uygulamanızın bir 'i doldururken doğrudan bir koleksiyon üzerinden geçmesine olanak tanır. Önceden, bir ListView kullanırken, RemoteViewsFactory'yi döndürmek için bir uygulamak ve bildirmek gerekiyordu.

If the collection doesn’t use a constant set of layouts (in other words, if some items are only sometimes present), use
Kod:
setViewTypeCount
to specify the maximum number of unique layouts the collection can contain.

Here’s an example of how to implement
Kod:
simplified
RemoteViews collections.

Kod:
remoteView.setRemoteAdapter(
  R.id.list_view,
  RemoteViews.RemoteCollectionItems.Builder()
    .addItem(/* id= */ ID_1, RemoteViews(...))
    .addItem(/* id= */ ID_2, RemoteViews(...))
    ...
    .setViewTypeCount(MAX_NUM_DIFFERENT_REMOTE_VIEWS_LAYOUTS)
    .build()
)

Java:
remoteView.setRemoteAdapter(
  R.id.list_view,
  new RemoteViews.RemoteCollectionItems.Builder()
    .addItem(/* id= */ ID_1, new RemoteViews(...))
    .addItem(/* id= */ ID_2, new RemoteViews(...))
    ...
    .setViewTypeCount(MAX_NUM_DIFFERENT_REMOTE_VIEWS_LAYOUTS)
    .build()
);

RemoteView'lerin çalışma zamanı değişikliğini kullanın

Android 12,
Kod:
RemoteView
özniteliklerinin çalışma zamanı değişikliğine izin veren birkaç
Kod:
RemoteView
yöntemi ekler. Eklenen yöntemlerin tam listesi için
Kod:
RemoteView
başvurusuna bakın.

Aşağıdaki kod örneği, yeni yöntemlerden birkaçının nasıl kullanılacağını gösterir.

Kod:
// Set the colors of a progress bar at runtime.
remoteView.setColorStateList(R.id.progress, "setProgressTintList", createProgressColorStateList())

// Specify exact sizes for margins.
remoteView.setViewLayoutMargin(R.id.text, RemoteViews.MARGIN_END, 8f, TypedValue.COMPLEX_UNIT_DP)

Java:
// Set the colors of a progress bar at runtime.
remoteView.setColorStateList(R.id.progress, "setProgressTintList", createProgressColorStateList());

// Specify exact sizes for margins.
remoteView.setViewLayoutMargin(R.id.text, RemoteViews.MARGIN_END, 8f, TypedValue.COMPLEX_UNIT_DP);




 
Paylaşım için teşekkürler :)
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst