سؤال

لدي رسم يستخدم في المحدد.الصورة/القابلة للرسم عبارة عن نجمة ويتم استخدام المحدد بواسطة مربع اختيار ويجب أن يمثل زرًا مفضلاً.

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="false" android:drawable="@drawable/star" />
    <item android:state_checked="true" android:drawable="@drawable/star_faved" />
</selector>

يبلغ حجم الصور 256 × 256 بكسل ولا يتغير حجمها عند استخدامها مع مربع الاختيار.لقد حاولت استخدامه كـ 9patch، لكن لم أتمكن من تشغيله.

    <CheckBox android:layout_width="20dp"
              android:layout_height="20dp"
              android:text="read"
              android:button="@drawable/favorite_checkbox"
              android:focusable="false"/>

ما هي الطريقة القياسية للتعامل مع هذا؟

هل كانت مفيدة؟

المحلول

يبدو أن حجم 256 × 256 بكسل كبير بما يكفي ليكون مصدرًا لـ xxxhdpi.
لذا، أتخيل أنك نجحت في تحقيق ذلك بدقة 640 نقطة في البوصة.

لن يساعد التصحيح 9 في هذه الحالة، لأنه سيؤدي إلى تمديد الرسومات.

تأكد من أن لديك على الأقل xxxhdpi المورد بدقة xxxhdpi (المطبيعية). 640 نقطة في البوصة

I used the icon from iconmonstr.com...يتم التقاط الصور من مواقع الأيقونات بجودة منخفضة جدًا (جيدة بما يكفي لأجهزة الكمبيوتر) تبلغ 72 نقطة في البوصة (عادةً / أحيانًا 96 نقطة في البوصة - ونادرًا ما تكون الجودة أفضل).

تخيل أن أقل نقطة في البوصة لنظام Android (لشاشة ldpi) هي 120 نقطة في البوصة، أي ما يقرب من الضعف...
إذا كنت تريد الجودة، فإن النقطة في البوصة التي يجب استخدامها هي:

  • 120 لـ ldpi، عامل القياس = 0.75
  • 160 لـ mdpi، عامل القياس = 1.0
  • 240 لـ hdpi، عامل القياس = 1.5
  • 320 لـ xhdpi، عامل القياس = 2.0
  • 480 لـ xxhdpi، عامل القياس = 3.0
  • 640 لـ xxxhdpi، عامل القياس = 4.0

عادةً ما يعمل التصغير إلى الأسفل بشكل مثالي تقريبًا.
لذا، فإن الحصول على مورد xxxhdpi أو xhdpi سيكون أمرًا جيدًا.

الآن، عليك تحسين الجودة.
72 نقطة في البوصة => 640 نقطة في البوصة - ولكن ترك نفس الحجم (أحضره إلى 640 نقطة في البوصة، وسيتم تغيير حجمه تلقائيًا إلى أحجام أكبر، ثم قم بتقليل الحجم إلى 256*256 مرة أخرى، مع ترك نقطة في البوصة مضبوطة على 640).

احفظ هذه الصور في /res/drawable-xxxhdpi مجلد

[يحرر]

يجب أن تكون أحجام الصورة الصحيحة لـ CheckBox 48*4 (192) px كأصل كامل (يعني الصورة + حشوة معينة، 16 بكسل لكل جانب، شفاف) و40*4 (160) px كالرسومات نفسها ("المربع البصري")، للحصول على دقة xxxhdpi.

[تحرير 2]

48, ، في mdpi دقة (160 نقطة في البوصة, ، عامل القياس = 1.0)
4.0 كونه عامل الحجم لقرار xxxhdpi

بما أن الصور ستصبح كبيرة (في الوزن)، أنصحك باستخدامها أوبتيبينغ, ، لتقليل إجمالي عدد البايتات دون فقدان الجودة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top