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

طراحی لایه گرافیکی - 4 دایره هم اندازه در یک صفحه - (حل شد)

سعید  10 سال پیش  10 سال پیش
0 0

کد هم اندازه کردن طول و عرض پایین قرار دارد

سلام دوستان من یک صفحه در برنامم دارم که باید 4 دایره داخلش باشه طبق آموزش های استاد پیش رفتم ولی خروجی برنامه در گوشی های با اندازه متفاوت دایره به بیضی تبدیل میشه لطفا راهنمایی کنید ممنون 

این عکس رو هم ببینید  خروجی صفحه

استفاده از selector برای دایره  شدن background 

<?xml version="1.0" encoding="utf-8"?>
<selectorxmlns:android="http://schemas.android.com/apk/res/android">
<itemandroid:state_pressed="false"><shapeandroid:shape="oval">
<solidandroid:color="#fa09ad"/></shape>
</item><itemandroid:state_pressed="true"><shapeandroid:shape="oval">
<solidandroid:color="#c20586"/></shape></item></selector>
+1 0
مشکل این هست که ارتفاع رو match_parent گذاشتی < درحالی که باید برابر با ارتفاع میشد < میتونید این مشکل رو با کد هم حل کنید < یعنی طول و عرض رو بگیرید و کمترین مقدار رو برای رتفاع و عرض ست کنید < و یا تکنیک های پیچبده تر در لایه بندی اعمال کنید < (10 سال پیش)
0 0
ممنون میشم اگه تکنیک های پیچبده تر در لایه بندی رو اشاره ای کنید (10 سال پیش)
 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
Criss  10 سال پیش
+3 0

از نظر هندسه و ریاضیات < رسم یک شکل دایره ایی بصورتی که شعاع اون در همه جا یک اندازه باشه (بیضی شکل نباشه) < شما باید اون رو درون یک مربع ترسیم کنید (با توجه به این که صفحه نمایش ها اکثرا مربعی نیستند ) < پس باید کاری کنید که اندازه عرض و ارتفاع برابر باشه < بنابر این اولین راه کار شما دادن دادن اندازه ثابت به طول و عرض هست <

به نظر من استفاده از تکنیک های طراحی لایه کار مناسبی نیست <

مثلا شما در اینجا برای عرض وزن 0.5 قرار دادید < اما برای ارتفاع برابر با لایه پدری قرار دادید < حالا اگه ارتفاع همون لایه پدری خودش برابر با یک وزن باشه < درواقع دایره شما هم در ارتفاع و هم در عرض بصورت وزن مقدار داده شده < شما میتونید بین دو لایه بالا و پایین یک لایه قرار بدید که وزرن 1 رو داشته باشه و ارتفاع و عرض رو برابر کنید با عدد ثابت کنید

که در نهایت نتیجه بخوبی دیده نمیشه و روی صفحه نمایش هایی مانند تبلت اندازه دایره های شما کوچیک دیده میشه

# پس بهرین کار استفاده از کد نویسی هست < مقدار ارتفاع و عرض رو بگیرید < کمترین مقدار رو برای هر دو ست کنید

 

پاسخ به سوال 
سعید  10 سال پیش
0 0


 public void goview()
    {
        l1 = (LinearLayout) findViewById(R.id.LinearLayout01);
        l2 = (LinearLayout) findViewById(R.id.LinearLayout02);


        p1 = (LayoutParams) l1.getLayoutParams();
        p2 = (LayoutParams) l2.getLayoutParams();


        l1.post(new Runnable() {

            @Override
            public void run() {
                int h = l1.getHeight();
                int w = l1.getWidth();
                Log.i("log", "h=" + h);
                Log.i("log", "w=" + w);
                p1.weight = 0f;
                p2.weight = 0f;

                if (h > w)
                {
                    p1.height = w;
                    p1.width = w;
                    p2.height = w;
                    p2.width = w;


                }
                else
                {
                    p1.height = h;
                    p1.width = h;
                    p2.height = h;
                    p2.width = h;
 
                }

            }
        });

    }

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