آیکون‌های نشانگر ماوس

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

استفاده از نشانگرهای پیش‌فرض سیستم

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

myView.setOnHoverListener { view, _ ->
      view.pointerIcon =
         PointerIcon.getSystemIcon(applicationContext, PointerIcon.TYPE_HAND)
      false // Listener did not consume the event.
}

در این مثال، myView نمایی است که تحت شرایط خاص روی یک آیکون اشاره‌گر تنظیم می‌شود. شرطی که در اینجا نشان داده شده است، حالت شناور است که زمانی رخ می‌دهد که نشانگر ماوس روی یک نما قرار دارد. در سناریوهای دیگر، ممکن است بخواهید در حین پردازش یک آیکون انتظار یا در یک بازی یک علامت ضربدر داشته باشید.

تابع setOnHoverListener به زمان ورود اشاره‌گر به حالت شناور گوش می‌دهد و سپس بر اساس آن رویداد عمل می‌کند. درون شنونده رویداد، view.pointerIcon فراخوانی می‌شود تا آیکون اشاره‌گر را برای آن نمای خاص تنظیم کند. از یک آیکون سیستمی موجود برای تنظیم آیکون اشاره‌گر استفاده می‌شود.

چندین آیکون سیستمی در اندروید وجود دارد؛ لیست کامل آنها در پایین این صفحه آمده است. از آیکون TYPE_HAND استفاده شده است که یک دست بسته با انگشت اشاره باز را نشان می‌دهد.

از نشانگر مخصوص خودتان استفاده کنید

// Loading a bitmap to use as a pointer icon
    BitmapFactory.decodeResource(
        this.resources,
        R.drawable.dollar_sign
    ), CURSOR_WIDTH, CURSOR_HEIGHT, false
)

// Creating the pointer icon and sending clicks from the center of the mouse icon
PointerIcon.create(dollarBitmap, (CURSOR_WIDTH/2).toFloat(), (CURSOR_HEIGHT/2).toFloat())

نکته: محل قرارگیری نقطه اتصال (hotspot) به مورد استفاده شما بستگی دارد. برای مثال، یک برنامه نقاشی، نقطه اتصال را روی نوک قلم یا قلم‌مو تنظیم می‌کند.

مثال‌ها

اضافه کردن آیکون‌های اشاره‌گر به برنامه‌تان، راهی عالی برای کمک به کاربرانتان است تا تجربیات بصری بیشتری در مورد فرم‌فکتورهای مختلف دستگاه‌هایی که استفاده می‌کنند، داشته باشند. آیکون‌های سیستم پیش‌فرض بسیار خوبی در دسترس هستند و اگر آنها متناسب با نیازهای شما نیستند، همیشه می‌توانید آیکون‌های خودتان را بارگذاری یا ایجاد کنید.

  • کشیدن و رها کردن - اگر برنامه شما از کشیدن و رها کردن از برنامه دیگر و رها کردن در برنامه شما پشتیبانی می‌کند، می‌توانید آیکون TYPE_NO_DROP را پیاده‌سازی کنید. این یک نشانه بصری است که برنامه شما از نوع MIME که سعی در رها کردن آن در برنامه شما دارد، پشتیبانی نمی‌کند.
  • نقشه‌برداری - اگر یک برنامه نقشه‌برداری دارید و می‌خواهید به کاربران نشان دهید که می‌توانند نقشه را حرکت دهند، می‌توانید گزینه‌ای داشته باشید که وقتی ماوس را روی نقشه نگه می‌دارید، آیکون TYPE_GRAB را نمایش دهد. وقتی کاربر کلیک می‌کند، می‌توانید آیکون را به یک دست که در حال گرفتن نقشه است، به‌روزرسانی کنید تا نشان دهید که آنها در حال حرکت روی نقشه هستند.
  • ویرایش عکس - کاربران ویرایش عکس دوست دارند کنترل‌هایی داشته باشند که به آنها امکان انتخاب ذره‌بین برای بزرگنمایی را بدهد. می‌توانید هنگام انتخاب حالت بزرگنمایی، مکان‌نما را با نماد TYPE_ZOOM_IN به ذره‌بین تغییر دهید.
  • و بسیاری فرصت‌های دیگر

نکته: برای دیدن تغییرات مختلف اشاره‌گر در عمل، این نمونه اشاره‌گر گیت‌هاب را بررسی کنید.

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

پیوست

مطالعه بیشتر

مکان‌نماهای پیش‌فرض سیستم

اینها مکان‌نماهایی هستند که به طور پیش‌فرض در سیستم اندروید موجود هستند.

نام مکان نما آیکون
نوع_نام مستعار مکان‌نمای مستعار، یک فلش با یک فلش منحنی کوچک در کنار آن.
نوع_همه_پیمایش مکان‌نمای تمام‌پیمایش، دایره‌ای با چهار فلش به سمت بیرون.
نوع_فلش مکان‌نمای فلش استاندارد.
سلول نوع مکان‌نمای سلول
منوی زمینه نوع مکان‌نمای منوی زمینه، یک فلش با یک آیکون منوی کوچک در کنار آن.
نوع_کپی مکان‌نمای کپی، یک فلش با علامت بعلاوه در کنار آن.
نوع_ضربه_زن مکان‌نمای متقاطع، یک علامت بعلاوه با یک نقطه در مرکز.
نوع_پیش‌فرض مکان‌نمای پیکانی پیش‌فرض.
نوع_گرفتن مکان‌نمای چنگ‌زننده، دستی باز.
گرفتن نوع مکان‌نمای گیرنده، دستی بسته.
نوع_دست مکان‌نمای دستی، دستی که با انگشت اشاره اشاره می‌کند.
کمک تایپی مکان‌نمای راهنما، یک فلش با علامت سؤال در کنار آن.
نوع_افقی_فلش_دوگانه مکان‌نمای افقی با فلش دوتایی برای تغییر اندازه.
نوع_بدون_رها کردن مکان‌نمای بدون رها کردن، دایره‌ای با خطی از میان آن.
نوع تهی هیچ مکان‌نمایی نمایش داده نمی‌شود
نوع متن مکان‌نمای متن، یک پرتو I شکل.
نوع_بالا_چپ_مورب_دوگانه مکان‌نمای دو فلش مورب از بالا سمت چپ به پایین سمت راست برای تغییر اندازه.
نوع_بالا_راست_مورب_دوگانه مکان‌نمای دو فلش مورب از بالا سمت راست تا پایین سمت چپ برای تغییر اندازه.
نوع_عمودی_دوگانه_فلش مکان‌نمای عمودی با فلش دوتایی برای تغییر اندازه.
نوع متن عمودی مکان‌نمای متن عمودی، یک پرتو I افقی.
نوع_انتظار مکان‌نمای انتظار، یک ساعت شنی یا دایره چرخان.
نوع_بزرگنمایی_داخل مکان‌نمای بزرگنمایی، یک ذره‌بین با علامت بعلاوه.
نوع_بزرگنمایی مکان‌نمای کوچک‌نمایی، یک ذره‌بین با علامت منفی.