بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

طراحی دکمه های حرفه ای - UI

مدیریت گفتگو
Aref 12 سال پیش
آخرین تغییر: 10 سال پیش

چطور میتونم دکمه های مثل تصویر 1 و تصویر 2 بسازم ؟

دکمه دایره میتونم بسازم و اینکه یه دکمه روی یه دکمه دیگه باشه رو نمیدونم چجوریه 

و تو تصویر 2 چطور میتونم اونجا که فلش زدم رو درست کنم ؟ مثل اینکه بخوام رادیوس منفی بزنم 

 

نظرات

Programmer 12 سال پیش
قصد طراحی این دکمه در فتوشاپ رو دارید ؟
Aref 12 سال پیش
نه ، فتوشاپ که طراحی کردم عکسشو گذاشتم دیگه ، پیاده سازی در اکلیپس
override 12 سال پیش
این سئوال مطرح شده بود عنوانش یادم نیست ولی جوابش این بود که باید از HTML Map Tag و WebView استفاده میشد.http://www.w3schools.com/TAgs/tryit.asp?filename=tryhtml_areamap
Aref 12 سال پیش
این روش رو بلد بودم ، گفتم شاید بدون html بشه پیاده سازی کرد ، ممنون
override 12 سال پیش
یه راه حل ساده به ذهنم رسید ، کافیه برای حالت 1 دکمه رو در یه LinearLayout قرار بدید و برای Background اون یه فایل xml یا عکس دایره ای که در drawable قرار دادید ست کنید حالا این Linearlayout میتونه کار دکمه ای که در پشت قرار گرفته رو برای ما انجام بده . دکمه جلو هم که همون خودشه با Background دلخواه .خیلی راحت و بی دردسر جواب میده.
Aref 12 سال پیش
مشکل اینجاست که من نمیتونم به layout کد بدم که کار دکمه رو انجام بده ، وقتی id ست کردم و میخوام تعریفش کنم خطا میگیره که به عنوان متغیر نمیشه استفاده کرد

پاسخ‌ها 3

Aref 12 سال پیش

LinearLayout ln2 = new LinearLayout(this);
        ln2.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                Toast.makeText(TestActivity.this, "hello", Toast.LENGTH_SHORT).show();
            }
        });

به صورت بالا تعریف کردم و قابلیت clickable=true قرار دادم ، یه رنگ پس زمینه هم انتخاب کردم ولی بازم کاری نمیکنه 

نظرات

override 12 سال پیش

من قبل از اینکه جواب بدم امتحان کردم تا مطمئن بشم کار میکنه و اشتباه چیزی نگفته باشم ببینید:

Custom BUtton

کدش هم که کدی نیست فکر نمیکنم نیازی باشه ولی حالا میذارم:

  LinearLayout btnBack = (LinearLayout) findViewById(R.id.btnBack);
btnBack.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
Toast.makeText(G.context, "Clicked On Back Button", Toast.LENGTH_SHORT).show();

}
});

Button btnFr findViewById(R.id.btnFront);
btnFront.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
Toast.makeText(G.context, "Clicked On Front Button", Toast.LENGTH_SHORT).show();

}
});

 دیگه همین، یه خرده باهاش کلنجار یواش برید جواب میده :)

نظرات

SaLaH KuRD 12 سال پیش
اســـــــــــــــــــــــــــــــــــــــــپـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــم
Aref 12 سال پیش
مرسی از راهنماییتون
Aref 12 سال پیش
این درست شد ، واسه تصویر 2 ایده ای نداری ؟
override 12 سال پیش
من درست متوجه نشدم منظورتون چیه؟ منظورتون اینه که توی xml چه طور باید این شکل رو بسازید؟اگه اینه که فکر نمیکنم با xml به این راحتی ها باشه مگه این که به چند شکل مختلف تقسیمش کنید بعد مثل این لینک و لینک شکل ها رو با هم ادغام کنید که اونم ساختن یه همچین شکلی به نظرم خیلی دردسر داره این لینک هم هست البته به درد کاری که شما میخواید بکنید نمیخوره
Aref 12 سال پیش
ممنون ، همین لینک آخری به نظرم جوابم باشه ، بعداً میخونمش ، عکسش که همون چیزیه که میخوام
override 12 سال پیش
پس شاید اینها هم به کارتون بیاد//goo.gl/o0Tsj2 و لینک من هیچی از canvas نمیدونم و این لینک قسمت Clip Drawable
Aref 12 سال پیش
ممنون Neo جان ، لینک های بدردبخوری بودن
hoseinnrz 12 سال پیش

اول از همه اینکه برای ساختن یه دکمه دایره ای میتونی یه فایل xml  داخل پوشه drawable بسازی و کدهای زیرو توش بنویسی ، بعد یه کنترل مثل button بنداز روی صفحه  و خاصیت بک گراندشو این فایل xml کن 

اگه هم بخوای زمانی که روی یک دکمه کلیک میشه یه افکت بدی مثلا رنگش عوض شه که باید از selector ها استفاده کنید .

برای ایکنه یه دکمه بیفته روی دکمه ی دیگه از Relative Layout استفاده کن 

 <?xml version="1.0" encoding="utf-8"?>
<shape android:shape="oval" xmlns:android="http://schemas.android.com/apk/res/android" >
    
// range dakhele daiere <solid android:color="#FFFFFF"/> // baraie ezafe kardan dor khat
<stroke android:color="#147BE4" android:width="2dip" /> </shape>

نظرات


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