آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

مشکل در رابطه با طراحی  UI  - ثابت نگه داشتن نسبت عرض و ارتفاع (حل شد)

MeyrOOn  10 سال پیش  10 سال پیش
0 0

با استفاده از ImageButton بجای Button و ست کردن مشخصه FitXY  مشکل حل شد.
الان دیگه آیکونها و عکسهای مربع یا دایره تو هر اسکرینی که برن دچار مشکل نمیشن !




 

سلام دوستان ...

برای اینکه نسبت ارتفاع و عرض یک دکمه 1 به 1 باشه باید چیکار کنم ؟
میخوام به دکمه ها و layout های در بر گیرندشون وزن بدم که هر کدوم یه درصدی از فضا رو پر کنن ..
ولی میخوام دکمه ها مربع باشند و وقتی اندازه ها تغییر میکنه مربع بمونن !!!

0 0
در واقع نمیخوام اندازه بدم ... چون مثلاً اگه بزنم 48dip X 48dip همه چیز درسته !!! ولی تو یه سری صفحه ها 48dip کوچک میشه تو یه سری بزرگ !!! باید نسبت بزنم !!! چجــــــــــــــــــــــــــــــــــــــــوری ؟! (10 سال پیش)
0 0
یه خورده گنگ نوشتید ولی اگه می خوایید هم به ارتفاع و هم به عرض وزن بدید راهش اینه که دکمه داخل یک لایه قرار بدید بعد مثلا به خود دکمه از نظر عرضی وزن بدید و ارتفاعش به اندازه پدرش ! ( که همون لایه باشه ) قرار بدید بعد به لایه از نظر ارتعاع وزن قرار بدید ! (10 سال پیش)
0 0
قضیه اینه که آیکونی که میخوام برای دکمه ها بزارم گِرد هست ( دایره ) چون دایره هست اگه نسبت ارتفاع عرضش بهم بخوره دیگه دایره نیست که !!!!!!! :دی (10 سال پیش)
0 0
نمیدونم فقط یه چیزی ! تو قسمت تنظیمات همین اندازه و ... یه گزینه هست به اسمه scale type تغییرش بده گزینه هاشو تست کن شاید کارت راه بندازه ! : ) (10 سال پیش)
 برای این سوال 3 پاسخ وجود دارد.
پاسخ به سوال 
Andronymous  10 سال پیش
+1 0

سلام منظور شما رو دقیقا میدونم ولی من تا حالا راهی جز این ایده ای که الان میگم پیدا نکردم.
شما میتونین از دو LinearLayout داخل هم یکی vertical ویکی Horizontal  به شکل زیر استفاده کنین :

اول لایه ی Horizontal رو قرار بدین که شامل سه تا کنترل برای وزن دادن میشه که یکی از اونها  یک LinearLayout  به حالت vertical هست که  قراره دگمتون توش قرار بگیره و اون دوتای دیگه دلخواه هستن و قراره شفاف باشن مثلا میتونین FrameLayout بزارین به این سه کنترل داخل HorizontalLayout ، وزن های مورد نظر رو بدین (Width Weight) حالا میریم سراغ VerticalLayout که باز اون خودش مثل قبل با قرار دادن سه تا FrameLayout به سه قسمت تقسیم بشه و کنترل های داخلش وزن دهی میشه (Height Weight)
با وزن دادن صحیح میتونین نسبت عرض و ارتفاع فضایی که در وسط ایجاد شده رو تنظیم کنین!

در آخر کافیه button مورد نظرتون رو توی FrameLayout وسطی بذارین و از ارتفاع و عرض اون رو  fill_parent قرار بدین!
البته یه ایرادی که این روش داره اینه که توی گوشی های مختلف چون نسبت ارتفاع گوشی به عرضش متغیره شما نمیتونین با وزن دادن عرض و ارتفاع طبق یک معیار خواص مطمن باشین که توی همه ی گوشی ها دگمتون حتما به شکل دایره ایه!
توی بعضی گوشی ها دایره ای خواهد بو توی بعضی بیضی عرضی و توی بعضی بیضی طولی ولی این بیضی خیلی کشیده نیست!
باز میگم این یک ایدست و ممکنه راه بهتری باشه که دوستان میان و میگن!

این کد xml چیزیه که گفتم توی یک فایل xml کپی کنین و نتیجه رو توی ساز های مختلف گوشی ببینین:
نسبت وزن ها:

عرض
0------50: 0.1562
50-----150: 0.3125
150----320: 0.5312

ارتفاع
0------100: 0.2083
100-----200: 0.2083
200------480: 0.5833


 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#aaaaaa"
    android:orientation="horizontal" >

    <FrameLayout
        android:layout_width="0dip"
        android:layout_height="fill_parent"
        android:layout_weight="0.1562"
        android:background="#aa0000aa" >
    </FrameLayout>

    <LinearLayout
        android:layout_width="0dip"
        android:layout_height="fill_parent"
        android:layout_weight="0.3125"
        android:orientation="vertical" >

        <FrameLayout
            android:layout_width="fill_parent"
            android:layout_height="0dip"
            android:layout_weight="0.2083"
            android:background="#aaaa5500" >
        </FrameLayout>

        <FrameLayout
            android:layout_width="fill_parent"
            android:layout_height="0dip"
            android:layout_weight="0.2083" >

            <Button
                android:id="@+id/button1"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:background="#ffffff"
                android:text="Button" />
        </FrameLayout>

        <FrameLayout
            android:layout_width="fill_parent"
            android:layout_height="0dip"
            android:layout_weight="0.5833"
            android:background="#aaaa5500" >
        </FrameLayout>
    </LinearLayout>

    <FrameLayout
        android:layout_width="0dip"
        android:layout_height="fill_parent"
        android:layout_weight="0.5312"
        android:background="#aa0000aa" >
    </FrameLayout>

</LinearLayout>

0 0
هر چقدر سعی کردم عکس آپلود نشد کد رو استفاده کنین توی فایل Xml. (10 سال پیش)
0 0
مچکرم .... مرسی که وقت میزاری دوست من الان امتحان میکنم و خبر میدم ... (10 سال پیش)
+1 0
آقا خـــــــــــــــــــــــــــــــــــــــــودشه دمت گرم ! حالا باید بشینم بفهمم چیکار کردی :دی بعد این روش رو رو طرح خودم پیاده کنم... بازم مزاحمت میشم احتمالاً :دی (10 سال پیش)
پاسخ به سوال 
MeyrOOn  10 سال پیش
0 0

من نمیدونم داستان طراحی توی اکلیپس چیه ولی میدونم به طرز غیر قابل انکاری پدر آدم رو در میآره !!!!!

هرجاش رو درست میکنی یه جاش در میره !!

 

بابا مگه Visual Studio چشه ؟!؟!؟
هرچی رو دلت میخواد هرجا که دوس داری تو هر اندازه میزاری !!!!!

 

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

 

الان با هزار بدبختی و نصف روز وقت گذاشتن این رو طراحی کردم آخرش هم تو تبلت آیکون ها اندازه کله مورچه میشه !!!

عاجزانه درخواست کمک دارم ..
تا وسط های فصل 7 خوندم ، استاد هم چیزی راجب این مساله نگفته ( جز همون فصل اول که معرفی بود فقط !! )

اگه توو فصلهای بعدی هست بگید برم اونها رو ببینم ..
خلاصه کــــــــــــمــــــــــــــــــــــــــــــــــــــــک کـــــــــــــــــــــنــــــــــــــــــــــیــــــــــــــــــــــــــــــــــــــــــــــــــــــــــد !!!!!

 

0 0
خب مشکل شما اینه که مقدار ثابت میدید بعد انتظار دارید ایکونای شما خود به خود تغییر کنن. یه راهش وزن دادن به لی اوت های راه دیکشم استفاده از پوشه های drawable-xxhdpi drawable-xhdpi و غیره هست همچنین برای طراحی در landscape , portrait دو تا پوشه layout-land و layout رو ایجاد کنید (10 سال پیش)
0 0
دوست من ، وزن رو به یک طرف میشه داد، یا ارتفاع یا عرض ( یا حداقل من در این حد بلدم !! ) من میخوام ارتفاع و عرض آیکون با هم با نسبت 1 به 1 کوچک و بزرگ بشوند اگر ممکنه واضح تر کمکم کنید .. (10 سال پیش)
0 0
اون راهی که گفتم کمکتون نکرد؟ عکس هم برای راهنمایی گذاشتم متاسفانه یا آپلود نشده یا نشون نمیده! (10 سال پیش)
0 0
متاسفانه متوجه اون راه حلتون نشدم ! عکس هم نیومد دیگه بدتر .. نمیشه یه بار دیگه عکس رو بزارید !؟ (10 سال پیش)
پاسخ به سوال 
nimar  10 سال پیش
0 0

اینکه به لایه ها و button ها وزن بدی و بخوای در اخر مربع هم در بیاد مشکل من هم هست

چجوری ممکنه

چون معمولا وقتی وزن داده میشه یه طرف کشیده تر هست

+1 0
دست رو دلم نذار داداش من دو روز هست که مغزم داره منفجر میشه !!!!! (10 سال پیش)
0 0
دوست عزیز مقدار ثابت بده چون چیزی که در ال دی پی آی 48 دیپ باشه برای ایکس اچ دی پی آی 96 دیپ دیده میشه یعنی خودش بزرگتر می شه. (10 سال پیش)
0 0
خوب الان مقدار ثابت دادم ولی یه جاهایی خیلی کوچک و یه جاهایی خیلی بزرگ میشه !! بعدم مشکل الان روی اندازه تصویر نیست !! من یک Button مربع میخوام !! که ارتفاع و عرضش با هم تغییر کنه !! (10 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .