سؤال

أقوم بإنشاء عنوان مخصص للنشاط عن طريق تعطيل واحد قياسي وإدارة كل شيء بنفسي. أتساءل عما إذا كان من الممكن استبدال/موضوع عنوان Standart باحتياجاتي.

يمكنني تخصيص الحجم وصورة الخلفية والنص عبر الموضوعات عن طريق تغيير عناصر WindowXyzStyle.

الشيء الوحيد الذي لم أتمكن من العثور عليه - كيف يمكنني إضافة صورة بدلاً من النص. لقد حاولت requestWindowFeature(Window.FEATURE_CUSTOM_TITLE)وتعيين تخطيط مخصص - لكن لا يبدو أنه يعمل.

تحرير: فيما يلي تقرير عن اقتراحات الاختبار ، الكود أدناه - النتيجة - عرض الصورة لا يظهر.

نشاط

public class SettingsActivity extends PreferenceActivity  {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
        getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title);
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.settings);

    }
}

XML :

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/title"
    android:layout_width="fill_parent"
    android:layout_height="26dip"
    android:paddingLeft="5dip"
    android:background="@drawable/titlebar_bg"
    android:layout_gravity="left|center"
>
    <ImageView
        android:id="@+id/logo"
        android:src="@drawable/title_logo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>
هل كانت مفيدة؟

المحلول

من الممكن تعيين تخطيط العنوان المخصص الخاص بك ، ولكن ترتيب التنفيذ مهم. يجب أن تفعل الأشياء بهذا الترتيب:

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.my_layout);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.my_custom_title);

بالإضافة إلى ذلك ، قد تحتاج إلى زيادة حجم العنوان ؛ إذا لم تقم بذلك ، فقد يتم تغطيتها في الجزء السفلي من التصميم المخصص. يمكنك تغيير الحجم عن طريق إضافة موضوع يحدد حجم العنوان. هذا من شأنه أن يذهب إلى ملف XML القيم:

<resources>
    <style name="LargeTitleTheme">
        <item name="android:windowTitleSize">40dip</item>
    </style>
</resources>

ثم ستحتاج إلى تعيين السمة لنشاطك (أو التطبيق ، إذا كنت تريد أن يكون للتطبيق بأكمله شريط العنوان المخصص) في AndroidManifest.xml:

<activity android:name=".MyCustomTitleActivity" android:theme="@style/LargeTitleTheme" />

نصائح أخرى

يمكنك دائمًا استخدام:

requestWindowFeature(Window.FEATURE_NO_TITLE);

ثم قم بإنشاء شريط العنوان الخاص بك داخل عرض نشاطك.

هل أنت متأكد من أنك بحاجة إلى استخدام صورة في العنوان بدلاً من مجرد دمجها كجزء من صورة الخلفية الخاصة بك وترك العنوان فارغًا؟ باستخدام Ninepatch الصورة أتوقع أن تكون قادرًا على تحقيق نتيجة تبدو جيدة بغض النظر عن الجهاز؟

لقد استخدمت الرمز التالي لتناسب عنوان مخصص على الشاشة

<ImageView
    android:id="@+id/header_img"
    android:src="@drawable/header_img"
    android:layout_width="700dip"
    android:layout_height="70dip" />
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top