ریسپانسیو کردن لایه ها در اندروید

یکشنبه 26 شهریور 1396

در این مقاله قصد داریم به شما توضیح دهیم که چگونه یک لایه را ریسپانسیو کرد که کاربرعلاوه برگوشی موبایل آن را در صفحه تبلت خود ببیند .برای این یک نمونه سورس برای شما قرار می دهیم.

ریسپانسیو کردن لایه ها در اندروید

برای این که بتوان یک لایه را به صورت ریسپانسیو در اورد ما در این جا از تابع WindowManager() استفاده کردیم.

زمانی که شما از تبلت استفاده می کنید به همان اندازه و زمانی که از گوشی استفاده می کنید به همان اندازه در می آورد.

کد کلاس جاوا به صورت زیر است:

 package com.android_examples.com.layoutmultiplesupport;

import android.app.Activity;
import android.os.Bundle;
import android.view.Display;
import android.view.WindowManager;

public class MainActivity extends Activity {

 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 WindowManager winManager = getWindowManager();
 Display display = winManager.getDefaultDisplay();
 int width = display.getWidth();
 int height = display.getHeight();

 if(width > height)
 {
 // Tablet layout called automatically in this If condition.
 setContentView(R.layout.activity_tablet_device);
 }
 else
 {
 // Normal Phone layout called automatically in this else condition.
 setContentView(R.layout.activity_normal_main);
 }
 }
 
 }

در لایه ی هم باید از کد زیر استفاده کرد:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:paddingBottom="@dimen/activity_vertical_margin"
 android:paddingLeft="@dimen/activity_horizontal_margin"
 android:paddingRight="@dimen/activity_horizontal_margin"
 android:paddingTop="@dimen/activity_vertical_margin"
 tools:context="com.android_examples.com.layoutmultiplesupport.MainActivity" >

 <TextView
 android:id="@+id/textView1"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_centerHorizontal="true"
 android:layout_centerVertical="true"
 android:text="Normal device Layout"
 android:textAppearance="?android:attr/textAppearanceLarge" />

</RelativeLayout>

زمانی که می خواهید از دستگاه تبلت استفاده کنید:

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="vertical" >

 <TextView
 android:id="@+id/textView1"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_centerHorizontal="true"
 android:layout_centerVertical="true"
 android:text="Tablet Device Layout"
 android:textAppearance="?android:attr/textAppearanceLarge" />

</RelativeLayout>

خروجی کار به صورت زیر خواهد بود:

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید