رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

پشتیبانی از سایز صفحه نمایش های مختلف


پست های پیشنهاد شده

سلام راه زیاد داره ولی من یکیشو میگم کد های xml رو با LinearLayout طراحی کنید که تو همه گوشی ها یک شکل باشه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

بارها و بارها در این انجمن به این پرسش پاسخ داده شده

بهتره برای هر دسته سایز صفحه نمایش لایوت جدا طراحی بشه مثلا برای تبلت ها در پوشه xhdpi لایوتی طراحی کنید و در پوشه ldpi لایوتی برای صفحات کوچک طراحی کنید و برای متوسط ها mdpi و برای حدود 7 اینجی ها xhdpi و همچنین عکس ها را به تناسب بزرگ و کوچک کنید و در پوشه مربوطه قرار دهید

لینک ارسال
به اشتراک گذاری در سایت های دیگر
  • 4 هفته بعد...

راه حل حرفه ای، همینی هست که دوستان اشاره کردن .

اما، گاهی لازم میشه شما لایتون رو با جاوا ایجاد کنید . بر فرض مثال توی ساخت کیبورد یا چیزی شبیه به اون که تعداد اجزای تصویر زیاد باشه ؛ راهی که توی این شرایط خودم استفاده میکنم، تعیین نسبی مشخصات شئ هست .

توی این حال، شما ی طراحی برای حالت عمودی (یا افقی) دارین، اگر لازم شد، ی طراحی هم برای حالت دیگه . روش کار هم میتونه ملاک قرار دادن طول و عرض صفحه نمایش باشه و مشخصات اشیاء دیگه رو به شکل ضرایبی از این دوتا مقدار دهی میکنیم .

البته توی این روش هیچ تضمینی نیست که روی همه دستگاها اپلیکیشن شما بی نقص باشه . گاهی نزدیک بودن مقدار طول و عرض تصویر، یا کوچیک بودن صفحه نمایش، مشکلاتی رو پیش میاره، که اجتناب ناپذیره .

بهرحال، لایه بعضی اپلیکیشن هارو نمیشه از قبل آماده کرد و باید دست به دامن جاوا بشیم ...

لینک ارسال
به اشتراک گذاری در سایت های دیگر

Amd میشه لدفن نمونه کدش رو برام بزاری

سلام. همونطور که گفتم من خودم تازه وارد محسوب میشم، پس یحتمل به این تکه کدها ایراداتی وارده ؛

محتوای کلاس  FirstActivity، صفحه اول اپلیکیشن که توی این صفحه تعداد ردیف‌ها و ستون‌های ماتریسی که میخوایم توی صفحه بعد تشکیل بدیم رو از کاربر دریافت می‌کنیم

[align=left][shcode=java]

package com.example.layout;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.TextView;

public class FirstActivity extends Activity {

    public static int NumOfColums;

    public static int NumOfRows;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_first);

        final TextView Colums = (TextView) findViewById(R.id.Colums);

        final TextView Rows = (TextView) findViewById(R.id.Rows);

        Button Next = (Button) findViewById(R.id.Button);

        Next.setOnClickListener(new OnClickListener() {

            @Override

            public void onClick(View v) {

                if (Integer.valueOf(Colums.getText().toString()) > 0)

                {

                    NumOfColums = Integer.valueOf(Colums.getText().toString());

                    if (Integer.valueOf(Rows.getText().toString()) > 0)

                    {

                        NumOfRows = Integer.valueOf(Rows.getText().toString());

                        finish();

                        Intent M = new Intent(FirstActivity.this, SecondActivity.class);

                        M.putExtra("NumOfColums", NumOfColums);

                        M.putExtra("NumOfRows", NumOfRows);

                        startActivity(M);

                    }

                }

            }

        });

    }

}

[/shcode]

[align=right]محتوای activity_first.xml، که ظاهر صفحه رو بر اساس روشی که دوستان گفتن طراحی کردم :

[align=left][shcode=xml]

    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.example.layout.FirstActivity" >

   

        android:layout_width="160dip"

        android:layout_height="wrap_content"

        android:orientation="vertical"

        android:layout_centerInParent="true"

        >

       

       

            android:layout_width="match_parent"

            android:layout_height="wrap_content"

            android:text="Number Of Colums :"

             />

       

       

            android:id="@+id/Colums"

            android:layout_width="match_parent"

            android:layout_height="wrap_content"

           

            />

       

       

            android:layout_width="match_parent"

            android:layout_height="wrap_content"

            android:text="Number Of Rows :"

             />

       

       

            android:id="@+id/Rows"

            android:layout_width="match_parent"

            android:layout_height="wrap_content"

           

            />

       

       

            android:id="@+id/Button"

            android:layout_width="match_parent"

            android:layout_height="wrap_content"

            android:text="Next >"

            />

       

   

   

[/shcode]

[align=right]محتوای کلاس SecondActivity، که ظاهر صفحش بدون نیاز به فایل xml و با کمک جاوا به روشی که توضیح دادم طراحی شده :

[align=left][shcode=java]

package com.example.layout;

import android.app.Activity;

import android.os.Bundle;

import android.view.Display;

import android.view.Gravity;

import android.widget.Button;

import android.widget.RelativeLayout;

import android.widget.RelativeLayout.LayoutParams;

public class SecondActivity extends Activity {

    private int ScreenWidth;

    private int ScreenHeight;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        int Number = 1;

        RelativeLayout Bg = new RelativeLayout(this);

        getScreenSize();

        Button Text;

        int NumOfColums = getIntent().getExtras().getInt("NumOfColums");

        int NumOfRows = getIntent().getExtras().getInt("NumOfRows");

        for (int i = 0; i < NumOfRows; i++)

        {

            for (int j = 0; j < NumOfColums; j++)

            {

                Text = new Button(this);

                               RelativeLayout.LayoutParams TextParams =

                new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

                Text.setHeight(ScreenHeight / NumOfRows);

                Text.setWidth(ScreenWidth / NumOfColums);

                TextParams.leftMargin = (ScreenWidth / NumOfColums) * j;

                TextParams.topMargin = (ScreenHeight / NumOfRows) * i;

                Text.setGravity(Gravity.CENTER);

                Text.setLayoutParams(TextParams);

                Text.setText(String.valueOf(Number));

                Number++;

                Bg.addView(Text);

            }

        }

        setContentView(Bg);

    }

    private void getScreenSize() {

        Display Dis = getWindowManager().getDefaultDisplay();

        ScreenWidth = Dis.getWidth();

        ScreenHeight = Dis.getHeight();

    }

}

[/shcode]

[align=right]به وسیله این کد، با تغییر ابعاد صفحه Device تناسب اجزاء صفحه هم تغییر میکنه و نسبت طول و عرضشون متفاوت خواهد بود ولی در کل قالب مشابهی دارن.[/align]

[/align]

[/align]

[/align]

[/align]

[/align]

لینک ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...