ফ্লোটিং অ্যাকশন বোতামের আইবোন আকার সামঞ্জস্য করুন (ফাব)


172

ভাসমান বোতাম নতুন ভাসমান অ্যাকশন বোতামটি 56dp x 56dp এবং এর ভিতরে থাকা আইকনটি 24dp x 24dp হওয়া উচিত । সুতরাং আইকন এবং বোতামের মধ্যে স্থানটি 16 ডিপি হওয়া উচিত ।

<ImageButton
    android:id="@+id/fab_add"
    android:layout_width="56dp"
    android:layout_height="56dp"
    android:layout_gravity="bottom|right"
    android:layout_marginBottom="16dp"
    android:layout_marginRight="16dp"
    android:background="@drawable/ripple_oval"
    android:elevation="8dp"
    android:src="@drawable/ic_add_black_48dp" />

ripple_oval.xml

<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="?android:colorControlHighlight">
    <item>
        <shape android:shape="oval">
            <solid android:color="?android:colorAccent" />
        </shape>
    </item>
</ripple>

এবং এই ফলাফলটি আমি পেয়েছি:
ভাসমান বোতামের ফলাফল
আমি \ উপাদান-ডিজাইন-আইকনস -১.০ \ সামগ্রী থেকে আইকনটি ব্যবহার করেছি \ অঙ্কনযোগ্য-এইচডিপিআই \ আইস_এডিডি_ব্ল্যাক_আরডিপি.পিএনপি
https://github.com/google/matory-design-icons/releases /tag/1.0.1

কীভাবে বোতামের অভ্যন্তরের আইকনটির আকারটি নির্দেশিকাগুলিতে বর্ণিত ঠিক তেমনভাবে তৈরি করা যায়?

http://www.google.com/design/spec/components/buttons.html#buttons-floating-action-button


সম্ভাব্য সদৃশ: stackoverflow.com/a/59455009/3974530
InsaneCat

@ ইনসনেটিক সম্ভবত অন্যভাবে হতে পারে কারণ আপনি যে প্রশ্নটি উল্লেখ করেছেন তা আমার চেয়ে সাম্প্রতিক।
ভোবহোস্ট

উত্তর:


184

আপনার সামগ্রী 24 ডিপি x 24 ডিপি হওয়ায় আপনার 24 ডিপি আইকন ব্যবহার করা উচিত । এবং তারপরে android:scaleType="center"স্বয়ংক্রিয় আকার পরিবর্তন এড়াতে আপনার ইমেজবটনে সেট করুন।


আপনি কোনও সাইটের লিঙ্কটি ব্যাখ্যা বা বাদ দিতে পারেন কেন উদাহরণস্বরূপ চিত্রনযোগ্য-এইচডিপিআই ফোল্ডারে _18dp.png, _24dp.png, _36dp.png, _48dp.png চিত্র রয়েছে।
ওয়াওস্ট ইস্ট

আমি আপনার প্রশ্নটি বুঝতে পারি না, বিভিন্ন আকারের চিত্রগুলির জন্য 18 ডিপি, 24 ডিপি, 36 ডিপি এবং 48 ডিপি রয়েছে।
গাতান এম।

আপনি কি পুরানো অ্যান্ড্রয়েড_ডিজাইন_ আইকনগুলির কথা মনে করেন যা hdpi ফোল্ডারে আইকনটির কেবল একটি বৈকল্পিক ছিল যা 48px x 48px ছিল? কেন এখন এইচডিপিআই ফোল্ডারে একই আইকনটির জন্য 4 টি আলাদা রেজোলিউশন রয়েছে যেমন 27px x 27 px, 36px x 36px, 54px x 54px, 72px x 72px?
ভোভোস্ট ইস্ট

1
ইমেজবটনটি ইমেজভিউর একটি সাবক্লাস তাই আপনার স্কেলটাইপ বৈশিষ্ট্য রয়েছে এবং ডিফল্ট স্কেল টাইপটি
এম।


116

ডাইমনসে এই প্রবেশ করুন entry

<!--Floating action button-->
<dimen name="design_fab_image_size" tools:override="true">36dp</dimen>

এখানে 36 ডিপি হ'ল ফ্লোটিং পয়েন্ট বোতামে আইকন আকার। এটি ভাসমান অ্যাকশন বোতামের জন্য সমস্ত আইকনগুলির জন্য 36dp আকার সেট করবে।

মতামত অনুসারে আপডেট

যদি আপনি নির্দিষ্ট ফ্লোটিং অ্যাকশন বোতামটিতে আইকন আকার সেট করতে চান তবে অ্যাপ্লিকেশন: ফাইবসাইজ = "সাধারণ" এবং অ্যান্ড্রয়েড: স্কেলটাইপ = "কেন্দ্র" এর মতো ফ্লোটিং অ্যাকশন বোতামের বৈশিষ্ট্যগুলি সহ কেবল যান।

  <!--app:fabSize decides size of floating action button You can use normal, auto or mini as per need-->
  app:fabSize="normal" 

  <!--android:scaleType decides how the icon drawable will be scaled on Floating action button. You can use center(to show scr image as original), fitXY, centerCrop, fitCenter, fitEnd, fitStart, centerInside.-->
  android:scaleType="center"

3
এটি কেবল আমার প্রয়োজন - সহজ এবং সহজ। পোস্ট করার জন্য ধন্যবাদ।
ব্লিস্টারপিন্ট

1
হ্যাঁ. এটি github.com/Clans/FloatingActionButton এর সাথে কাজ করে না । আপনি যখন অ্যান্ড্রয়েডগুলি ব্যবহার করছেন ফ্লোটিং অ্যাকশনবটন
অভিষেক

2
হ্যাঁ তবে আমি অ্যাপ্লিকেশন জুড়ে এটি করতে চাই না!
স্টারউইন্ড0

@ স্টারওয়াইন্ড0 আমি একক ভাসমান অ্যাকশন বোতামের জন্য আবেদন করতে চাইলে আপনাকে ফাবসাইজ এবং স্কেলটাইপ বৈশিষ্ট্যগুলি ব্যবহার করতে হবে। আমি আমার উত্তর আপডেট করেছি।
অভিষেক

110

app:maxImageSize="56dp"আপনি আপনার সাপোর্ট লাইব্রেরি v28.0.0 এ আপডেট করার পরে উপরের উত্তরের পরিবর্তে ব্যবহারের চেষ্টা করুন


1
যে কোনও উপায়ে, আপনি এটি 28.0.0 সংস্করণে পাবেন না, আপনি এটি অ্যান্ড্রয়েডে পাবেন in
খেমরাজ

1
আমি অ্যান্ড্রয়েডএক্সে স্যুইচ করি নি, এটিই আমি ব্যবহার করছি: api 'com.android.support:design:28.0.0'
রবিন

3
এটি আমার পক্ষে কাজ করেছে তবে maxIconSizeআইকনের আকারকে কেন পরিবর্তন করা হচ্ছে তা বোঝার জন্য আমি আরও তথ্য চাই ।
স্ট্রেমিন

44

কাস্টম FABs এর জন্য তিনটি কী এক্সএমএল বৈশিষ্ট্য রয়েছে:

  • app:fabSize: হয় "মিনি" (40 ডিপি), "স্বাভাবিক" (56 ডিপি) (ডিফল্ট) বা "স্বয়ং"
  • app:fabCustomSize: এটি সামগ্রিক এফএবি আকার নির্ধারণ করবে।
  • app:maxImageSize: এটি আইকনের আকার সিদ্ধান্ত নেবে।

উদাহরণ:

app:fabCustomSize="64dp" 
app:maxImageSize="32dp"

এফএবি প্যাডিং (আইকন এবং ব্যাকগ্রাউন্ড সার্কেলের মধ্যে স্থান, ওরফে রিপল ) নিখুঁতভাবে গণনা করা হয়:

4-edge padding = (fabCustomSize - maxImageSize) / 2.0 = 16

নোট করুন যে ফাবের মার্জিনগুলি সাধারণ android:marginএক্সএমএল ট্যাগ বৈশিষ্ট্য দ্বারা সেট করা যেতে পারে ।


27

নকশার নির্দেশিকা দুটি আকারকে সংজ্ঞায়িত করে এবং যদি না হয় যে কোনওটি ব্যবহার থেকে বিচ্যুত হওয়ার দৃ strong় কারণ না থাকলে আকারটির উপাদানটির fabSizeএক্সএমএল বৈশিষ্ট্য দিয়ে নিয়ন্ত্রণ করা যায় FloatingActionButton

হয় app:fabSize="normal"বা ব্যবহার করে নির্দিষ্টকরণ বিবেচনা করুন app:fabSize="mini":

<android.support.design.widget.FloatingActionButton
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:src="@drawable/ic_done_white_24px"
   app:fabSize="mini" />

15
<ImageButton
        android:background="@drawable/action_button_bg"
        android:layout_width="56dp"
        android:layout_height="56dp"
        android:padding="16dp"
        android:src="@drawable/ic_add_black_48dp"
        android:scaleType="fitXY"
        android:elevation="8dp"/>

ব্যাকগ্রাউন্ডের সাহায্যে এটি আমার ডিভাইসে নীচে বোতামে ফলাফল করেছে (Nexus 7 2012)

এখানে চিত্র বর্ণনা লিখুন

আমার কাছে ভালই লাগছে.


7
আমি প্যাডিং সেট করেছি তবে এটি কিছুই করে না। এবং ডান প্যাডিং 16 ডিপি হবে 32 ডিপি নয়
vWostost

10

আপনার লক্ষ্য কি?

আইকন চিত্রের আকারটি যদি বড় আকারে সেট করা থাকে:

  1. আপনার টার্গেটের আকারের চেয়ে বড় আকারের চিত্র রয়েছে তা নিশ্চিত করুন (so you can set max image size for your icon)

  2. আমার টার্গেট আইকন চিত্রের আকার 84 ডিপি এবং ফাবের আকার 112 ডিপি :

    <android.support.design.widget.FloatingActionButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:src= <image here>
        app:fabCustomSize="112dp"
        app:fabSize="auto"
        app:maxImageSize="84dp" />

6

আপনি যদি অ্যান্ড্রয়েডেক্স ০.০.০ ব্যবহার করছেন এবং একটি কাস্টম ফ্যাব আকার ব্যবহার করছেন তবে আপনাকে কাস্টম আকারটি ব্যবহার করে নির্দিষ্ট করতে হবে

app:fabCustomSize="your custom size in dp"

ডিফল্টের মাধ্যমে আকারটি 56 ডিপি এবং সেখানে আরও একটি প্রকরণ রয়েছে যা ছোট আকারের ফাব যা 40 ডিপি হয়, আপনি যদি কিছু ব্যবহার করছেন তবে প্যাডিং সঠিকভাবে গণনা করার জন্য আপনাকে এটি নির্দিষ্ট করতে হবে


আমি ঠিক এটিই খুঁজছিলাম! এমনকি আপনি সেট layout_widthএবং প্রয়োজন হয় নাlayout_height । এটা ঠিক কাজ করে। এটাও প্রাপ্তিসাধ্য চালু থাকেcom.android.support:design:28.0.0
PNDA

4

যেমনটি FABহয় ImageViewতেমনই আপনি scaleTypeআইকনটির আকারও পরিবর্তন করতে অ্যাট্রিবিউট ব্যবহার করতে পারেন ImageView। ডিফল্ট scaleTypeএকটি জন্য FABহয় fitCenter। আপনি ব্যবহার করতে পারেন centerএবং centerInsideযথাক্রমে ছোট এবং বড় আইকন করা।

scaleTypeবৈশিষ্ট্যের জন্য সমস্ত মান হ'ল - center, centerCrop, centerInside, fitCenter, fitEnd, fitStart, fitXYএবং matrix

আরও তথ্যের জন্য https://developer.android.com/references/android/widget/ImageView.ScaleType.html দেখুন ।


3

ভেক্টর অঙ্কনযোগ্য সেটিংয়ে @ ইরাদ এর উত্তর বন্ধ করে android:height="_dp" এবং স্কেল টাইপ android:scaleType="center" সেট আকারে যা আকার সেট করা হয়েছিল তা আঁকতে সক্ষম করে


2

আপনি ফ্লোটিংঅ্যাকশনবটনের নিম্নলিখিত সেটিংসের সাথে খেলতে পারেন: অ্যান্ড্রয়েড: স্কেলটাইপ এবং অ্যাপ্লিকেশন: ম্যাকজিমেজ সাইজ ize আমার হিসাবে, অ্যান্ড্রয়েড: স্কেলটাইপ = "সেন্টারআইনসাইড" এবং অ্যাপ্লিকেশন: ম্যাক্সিমেজাইজসাইজ = "56 ডিপি" হলে আমি একটি পছন্দসই ফলাফল পেয়েছি।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.