colors - मैं फ़्लटर में हेक्साडेसिमल रंग के तारों का उपयोग कैसे करूं?




dart flutter (6)

const appBackground = रंग (0xffdf7599);

df7599 आपके रंग का हेक्स कोड है

मैं हेक्साडेसिमल रंग स्ट्रिंग को #b74093 जैसे किसी Color में कैसे परिवर्तित #b74093 ?


अगर आपका रंग # e41749 है तो इसे 0xff से पहले जोड़ें

तो आप इसे इस प्रकार लिख सकते हैं:

रंग: रंग (0xffe41749);


एक और उपाय है। यदि आप अपने रंग को सामान्य हेक्स स्ट्रिंग के रूप में संग्रहीत करते हैं और इसमें अपारदर्शिता नहीं जोड़ना चाहते हैं (अग्रणी FF): 1) अपने हेक्स स्ट्रिंग को पूर्णांक में बदलें हेक्स-स्ट्रिंग को पूर्णांक में बदलने के लिए, निम्न में से एक करें:

var myInt = int.parse(hexString, radix: 16);

या

var myInt = int.parse("0x$hexString");

0x (या -0x) के उपसर्ग के रूप में int.parse को 16 के मूलांक के लिए डिफ़ॉल्ट बना देगा।

2) कोड के माध्यम से अपने रंग में अस्पष्टता जोड़ें

Color color = new Color(myInt).withOpacity(1.0);

फ़्लटर में Color वर्ग केवल पूर्णांकों को पैरामीटर के रूप में स्वीकार करता है, या नामांकित कंस्ट्रक्टरों को fromARGB और fromRGBO से उपयोग करने की संभावना है।

इसलिए हमें केवल स्ट्रिंग #b74093 को पूर्णांक मान में #b74093 होगा। इसके अलावा, हमें इस बात का सम्मान करना होगा कि अपारदर्शिता को हमेशा निर्दिष्ट करने की आवश्यकता है
255 (पूर्ण) अपारदर्शिता का प्रतिनिधित्व हेक्साडेसिमल मान FF द्वारा किया जाता है। यह पहले से ही हमें 0xFF साथ छोड़ देता है। अब, हमें बस इस तरह से अपने रंग स्ट्रिंग को जोड़ने की आवश्यकता है:

final color = const Color(0xffb74093);

पसंद द्वारा अक्षरों को कैपिटल किया जा सकता है या नहीं:

final color = const Color(0xFFB74093);

"#b74093" ? ठीक...

हेक्स पकाने की विधि के लिए

import 'package:flutter/material.dart';
class HexToColor extends Color{
  static _hexToColor(String code) {
    return int.parse(code.substring(1, 7), radix: 16) + 0xFF000000;
  }
  HexToColor(final String code) : super(_hexToColor(code));
}

Color वर्ग ARGB पूर्णांक की अपेक्षा करता है। चूंकि आप इसे RGB मान के साथ उपयोग करने का प्रयास करते हैं, इसलिए इसे इंट का प्रतिनिधित्व करते हैं और इसे 0xff साथ उपसर्ग करते हैं।

Color mainColor = Color(0xffb74093);

यदि आप इससे परेशान हो जाते हैं और फिर भी तार का उपयोग करने की इच्छा रखते हैं, तो आप Color विस्तार कर सकते हैं और एक स्ट्रिंग निर्माता जोड़ सकते हैं

class HexColor extends Color {
  static int _getColorFromHex(String hexColor) {
    hexColor = hexColor.toUpperCase().replaceAll("#", "");
    if (hexColor.length == 6) {
      hexColor = "FF" + hexColor;
    }
    return int.parse(hexColor, radix: 16);
  }

  HexColor(final String hexColor) : super(_getColorFromHex(hexColor));
}

प्रयोग

Color color1 = HexColor("b74093");
Color color2 = HexColor("#b74093");
Color color3 = HexColor("#88b74093"); // if you wish to use ARGB format




flutter