Brush APIs

رابط‌های برنامه‌نویسی کاربردی Brush APIs) ابزارهایی را برای تعریف سبک بصری خطوط در اختیار شما قرار می‌دهند. می‌توانید قلم‌موهایی با رنگ‌ها، اندازه‌ها و خانواده‌های مختلف ایجاد کنید تا به ظاهرهای متنوعی دست یابید.

یک قلم مو ایجاد کنید

برای ایجاد یک قلم‌مو، از متدهای همراه Compose Brush با آرگومان‌های نامگذاری شده مانند Brush.Companion.createWithComposeColor استفاده کنید. این کلاس به شما امکان می‌دهد ویژگی‌های زیر را تنظیم کنید:

  • family : سبک قلم‌مو، مشابه با یک فونت یا فونت در متن. برای مقادیر موجود BrushFamily به StockBrushes مراجعه کنید.
  • color : رنگ قلم‌مو. می‌توانید رنگ را با استفاده از ColorLong تنظیم کنید.
  • size : ضخامت کلی خطوط ایجاد شده با قلم‌مو.
  • epsilon : کوچکترین فاصله‌ای که دو نقطه باید از نظر بصری برای اهداف هندسه تولید خط‌کشی متمایز در نظر گرفته شوند. نسبت اپسیلون و نقاط خط‌کشی، میزان بزرگنمایی یک خط‌کشی را بدون ایجاد مصنوعات و با هزینه حافظه کنترل می‌کند. یک نقطه شروع خوب برای واحدهای خط‌کشی ۱ پیکسل و یک نقطه شروع خوب برای اپسیلون ۰.۱ است. مقادیر بالاتر اپسیلون از حافظه کمتری استفاده می‌کنند اما امکان بزرگنمایی کمتری را قبل از ظاهر شدن مصنوعات مثلثی فراهم می‌کنند. برای یافتن مقدار مناسب برای مورد استفاده خود، آزمایش کنید.
val brush = Brush.createWithComposeColor(
  family = StockBrushes.pressure(),
  colorIntArgb = Color.Black,
  size = 5F,
  epsilon = 0.1F
)

تغییر ویژگی‌های قلم‌مو

شما می‌توانید با استفاده از متد copyWithComposeColor() یک کپی از یک براش موجود ایجاد کنید، که به شما امکان می‌دهد هر یک از ویژگی‌های براش را تغییر دهید.

val redBrush = Brush.createWithComposeColor(
  family = StockBrushes.pressurePen(),
  colorIntArgb = Color.RED,
  size = 5F,
  epsilon = 0.1F
)

val blueBrush = redBrush.copyWithComposeColor(color = Color.BLUE)

برس‌های سفارشی

در حالی که StockBrushes مجموعه‌ای متنوع از قلم‌موهای رایج را ارائه می‌دهد، Ink API همچنین مسیری پیشرفته برای ایجاد رفتارهای کاملاً جدید قلم‌مو برای جلوه‌های هنری منحصر به فرد یا تکرار قلم‌موهای موجود خاص برای سازگاری با نسخه‌های قبلی ارائه می‌دهد.

یک BrushFamily سفارشی از فرمت سریالیزه شده‌اش بارگذاری می‌شود. فرمت مورد نیاز، کدگذاری دودویی gzip شده بافر پروتکل BrushFamily است. این به شما امکان می‌دهد فایل‌های براش سفارشی را همین امروز بارگذاری و استفاده کنید. پس از deserialize شدن، می‌توان از BrushFamily سفارشی برای ایجاد یک Brush جدید با رنگ و اندازه خاص، درست مانند هر یک از خانواده‌های StockBrushes ، استفاده کرد.