ফ্লাটার অ্যাপগুলিতে একটি স্প্ল্যাশ স্ক্রিন যুক্ত করা হচ্ছে


143

কীভাবে আপনি ঝাঁকুনির অ্যাপ্লিকেশনগুলিতে একটি স্প্ল্যাশ স্ক্রিন যুক্ত করতে যোগাযোগ করবেন? এটি অন্য কোনও সামগ্রীর আগে লোড হওয়া এবং প্রদর্শন করা উচিত। স্ক্যাফোল্ড (হোম: এক্স) উইজেট লোডের আগে রঙের একটি সংক্ষিপ্ত ফ্ল্যাশ রয়েছে।


আমি কাস্টম টাইমার সেট করে স্প্ল্যাশ স্ক্রিন যুক্ত করার সঠিক উপায় কিনা তা আমি জানি না, আমি প্রসেসরগুলিকে নিষ্ক্রিয় রাখতে চাই না কেন প্রয়োজনীয় ফাইল বা ডিরেক্টরিগুলি পরীক্ষা করা বা কিছু লগ সিঙ্ক করা, বা কিছু ফাইলগুলিতে ব্যাকআপ রাখার মতো কিছু ঘরের রক্ষণাবেক্ষণের কাজ করা উচিত নয় not ব্যাকগ্রাউন্ড এবং সামনের সময়টিতে ফ্রন্টে ব্র্যান্ডিং করুন after পরে সমস্ত 3-4 সেকেন্ড একটি প্রসেসরের জন্য অনেক সময়।
maheshmnj

1
কীভাবে করবেন তা এই লিঙ্কটিতে ব্যাখ্যা করা হয়েছে: বিড়বিড়.দেব
-

উত্তর:


250

আমি ফ্লটারে স্প্ল্যাশ স্ক্রিন করার আসল উপায়ে আরও কিছুটা আলোকপাত করতে চাই।

আমি এখানে কিছুটা ট্রেস অনুসরণ করেছি এবং আমি দেখেছি যে জিনিসগুলি ঝাঁকুনির স্প্ল্যাশ স্ক্রিনটি সম্পর্কে এত খারাপ দেখাচ্ছে না।

সম্ভবত বেশিরভাগ ডেভস (আমার মতো) ভাবছেন যে ফ্লুটারে ডিফল্টরূপে স্প্ল্যাশ স্ক্রিন নেই এবং তাদের এটি সম্পর্কে কিছু করা দরকার। একটি স্প্ল্যাশ স্ক্রিন রয়েছে তবে এটি সাদা পটভূমিতে রয়েছে এবং কেউই বুঝতে পারবেন না যে ডিফল্টরূপে আইওএস এবং অ্যান্ড্রয়েডের জন্য ইতিমধ্যে একটি স্প্ল্যাশ স্ক্রিন রয়েছে।

বিকাশকারীকে কেবলমাত্র যা করতে হবে তা হল ব্র্যান্ডিং চিত্রটি সঠিক জায়গায় স্থাপন করা এবং স্প্ল্যাশ স্ক্রিন ঠিক ঠিক সেইভাবেই কাজ শুরু করবে।

এখানে আপনি কীভাবে ধাপে ধাপে এটি করতে পারেন তা এখানে:

অ্যান্ড্রয়েডে প্রথম (কারণ আমার প্রিয় প্ল্যাটফর্মটি :))

  1. আপনার এলোমেলো প্রকল্পে "অ্যান্ড্রয়েড" ফোল্ডারটি সন্ধান করুন।

  2. অ্যাপ্লিকেশনটিতে ব্রাউজ করুন -> এসআরসি -> প্রধান -> রেজোল্ড ফোল্ডার এবং আপনার ব্র্যান্ডিং চিত্রের সমস্ত রূপগুলি সংশ্লিষ্ট ফোল্ডারে রাখুন। উদাহরণ স্বরূপ:

  • ঘনত্ব 1 সহ চিত্রটি মিপম্যাপ-এমডিপিআইতে রাখা দরকার,
  • 1.5 ঘনত্বের চিত্রটি মিপম্যাপ-এইচডিপিআইতে রাখা দরকার,
  • ঘনত্ব 2 সহ চিত্রটি মিপম্যাপ-এক্সডিপিআইতে রাখা দরকার,
  • ঘনত্ব 3 সহ চিত্রটি মিপম্যাপ-এক্সএক্সডিপিআইতে রাখা দরকার,
  • ঘনত্ব 4 সহ চিত্রটি মিপম্যাপ-এক্সএক্সএক্সডিপিআইতে রাখা দরকার,

অ্যান্ড্রয়েড ফোল্ডারে ডিফল্টরূপে অঙ্কনযোগ্য-এমডিপিআই, অঙ্কনযোগ্য-এইচডিপিআই ইত্যাদি নেই তবে আমরা চাইলে সেগুলি তৈরি করতে পারি। এই সত্যের কারণে চিত্রগুলি মিপম্যাপ ফোল্ডারে স্থাপন করা দরকার। এছাড়াও স্প্ল্যাশ স্ক্রিনের ডিফল্ট এক্সএমএল কোডটি (অ্যান্ড্রয়েডে) @ ড্রপযোগ্য রিসোর্সের পরিবর্তে @ মিপম্যাপ ব্যবহার করতে চলেছে (আপনি চাইলে এটি পরিবর্তন করতে পারেন)।

  1. অ্যান্ড্রয়েডের সর্বশেষ পদক্ষেপটি হ'ল / লঞ্চ_ব্যাকগ্রাউন্ড.এক্সএমএল ফাইলের কয়েকটি এক্সএমএল কোডকে নিয়ন্ত্রণ করা। অ্যাপ্লিকেশনটিতে ব্রাউজ করুন -> src -> প্রধান -> পুনরায়-> অঙ্কনযোগ্য এবং ওপেন লঞ্চ_ব্যাকগ্রাউন্ড.এক্সএমএল। এই ফাইলটির অভ্যন্তরে, আপনি স্ল্যাশ পর্দার পটভূমি কেন সাদা তা দেখতে পাবেন। আমরা দ্বিতীয় ধাপে রেখেছি এমন ব্র্যান্ডিং চিত্রটি প্রয়োগ করতে, আপনার লঞ্চ_ব্যাকগ্রাউন্ড.এক্সএমএল ফাইলের কয়েকটি এক্সএমএল কোডকে আমাদের আপত্তিহীন করতে হবে। পরিবর্তনের পরে কোডটি দেখতে এমন হওয়া উচিত:

     <!--<item android:drawable="@android:color/white" />-->
    
     <item>
    
         <bitmap
             android:gravity="center"
             android:src="@mipmap/your_image_name" />
    
     </item>
    

দয়া করে মনোযোগ দিন যে আমরা সাদা ব্যাকগ্রাউন্ডের জন্য এক্সএমএল কোডটি মন্তব্য করি এবং মিপম্যাপ চিত্রটি সম্পর্কে কোডটি অসম্মানিত করি। যদি কেউ আগ্রহী হন তবে ফাইলের প্রবর্তন_ব্যাকগ্রাউন্ড.এক্সএমএল স্টাইল.এক্সএমএল ফাইলটিতে ব্যবহৃত হয়।

আইওএসে দ্বিতীয়:

  1. আপনার ঝাঁকুনির প্রকল্পে "আইওএস" ফোল্ডারটি সন্ধান করুন।

  2. রানার -> Assets.xcassets -> LaunchImage.imageset এ ব্রাউজ করুন। LaunchImage.png, LaunchImage@2x.png, ইত্যাদি থাকা উচিত Now এখন আপনাকে এই ব্র্যান্ডিং ইমেজ ভেরিয়েন্টের সাথে এই চিত্রগুলি প্রতিস্থাপন করতে হবে। উদাহরণ স্বরূপ:

  • ঘনত্ব 1 সহ চিত্রটি LaunchImage.png ওভাররাইড করতে হবে,
  • ঘনত্ব 2 সহ চিত্রটি LaunchImage@2x.png ওভাররাইড করতে হবে,
  • ঘনত্ব 3 সহ চিত্রটি LaunchImage@3x.png ওভাররাইড করতে হবে,
  • ঘনত্ব 4 সহ চিত্রটি LaunchImage@4x.png ওভাররাইড করতে হবে,

আমি যদি ভুল না হই তবে LaunchImage@4x.png ডিফল্টরূপে উপস্থিত না থাকলেও আপনি সহজেই এটি তৈরি করতে পারেন। যদি LaunchImage@4x.png উপস্থিত না থাকে, আপনাকে এটিকে Contents.json ফাইলটিতেও ঘোষণা করতে হবে, যা চিত্রগুলির মতো একই ডিরেক্টরিতে রয়েছে। পরিবর্তনের পরে আমার কনটেন্টস.জসন ফাইলটি দেখতে এমন দেখাচ্ছে:

{
  "images" : [
    {
      "idiom" : "universal",
      "filename" : "LaunchImage.png",
      "scale" : "1x"
    },
    {
      "idiom" : "universal",
      "filename" : "LaunchImage@2x.png",
      "scale" : "2x"
    },
    {
      "idiom" : "universal",
      "filename" : "LaunchImage@3x.png",
      "scale" : "3x"
    },
    {
      "idiom" : "universal",
      "filename" : "LaunchImage@4x.png",
      "scale" : "4x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

এটি আপনার দরকার হবে, পরের বার আপনি যখন আপনার অ্যাপটি চালাবেন তখন অ্যান্ড্রয়েড বা আইওএসে আপনার যুক্ত হওয়া ব্র্যান্ডিং চিত্রের সাথে ডান স্প্ল্যাশ স্ক্রিন থাকা উচিত।

ধন্যবাদ


4
আমি Cannot resolve symbol '@mipmap/ic_launcher'অ্যান্ড্রয়েড স্টুডিও 3.1.1 এ ত্রুটি পেয়েছি (এমনকি ক্যাশে পুনর্নির্মাণের পরেও) তবে অ্যাপটি সংকলন করে ত্রুটি ছাড়াই চলেছে এবং লঞ্চার গ্রাফিক প্রদর্শিত হয়েছে।
IanB

1
আমার একই সমস্যা রয়েছে, তবে রানটাইম হিসাবে এটি ক্র্যাশ হয়ে গেছে এবং আমাকে বলছে যে চিত্রটি অনুপস্থিত রয়েছে i তবে এটি কোনও কারণে মিপম্যাপ সমাধান করতে পারে না। কারও ধারণা এই কেন?
carlosx2

হাই ছেলেরা, আপনার কেন এই সমস্যা আছে তা নিশ্চিত নন, তবে আমার কাছে প্রকল্প সিঙ্ক সমস্যার মতো দেখায় (এটি যদি থাকে তবে উত্সটি খুঁজে না পাওয়ার কোনও অন্য কারণ নেই)। আমি কীভাবে এটি সমাধান করব জানি না কারণ আমার এই সমস্যাটি কখনই ছিল না, তবে প্রকল্পটি সিঙ্ক করার চেষ্টা করুন, পরিষ্কার করুন, পুনর্নির্মাণ করুন ইত্যাদি যা আপনার আইডিইএতে এটি কখনও সম্ভব। অঙ্কনযোগ্য ফোল্ডারে রিসোর্সটি ব্যবহার করার চেষ্টা করুন এবং অঙ্কনযোগ্য টিকা সহ মিপম্যাপ টিকাটি প্রতিস্থাপন করুন। আমি এখনই অনুমান করছি :)
স্টয়েচো অ্যান্ড্রিভ

1
কেন আপনি 4x চিত্র যুক্ত করছেন তা আগ্রহী। এক্সকোড কেবলমাত্র 3x আশা করে বলে মনে হচ্ছে, আপনি 4x যুক্ত করার কোনও কারণ আছে?
sbilstein

3
অফিসিয়াল ডকুমেন্টেশনে এটি কভার করা হয়েছে।
রমলভিয়া

28

আপনি যদি flutter createআপনার প্রকল্পটি ডি করেন তবে আপনি https://flutter.io/assets-and-images/#updating-the-launch-screen এ পদক্ষেপগুলি অনুসরণ করতে পারেন ।


স্প্ল্যাশ স্ক্রিনটি করে এবং / অথবা আইকনগুলি আপডেট করার সময় তার স্প্ল্যাশ স্ক্রিনটি হোসিং করে আমিই কেবল একজন? এই সঠিক পদ্ধতিটি ব্যবহার করছেন ...?
ক্রিসএইচ

21

বিড়াল আসলে আমাদের অ্যাপ্লিকেশন স্প্ল্যাশ স্ক্রিন যোগ করার একটি সহজ উপায় দেয়। আমরা অন্যান্য অ্যাপ্লিকেশন স্ক্রিন ডিজাইন করার সাথে সাথে প্রথমে আমাদের একটি বেসিক পৃষ্ঠা ডিজাইন করা দরকার। আপনাকে এটিকে স্টেটফুল উইজেট তৈরি করতে হবে যেহেতু এর সেকেন্ডে কয়েক দশকের মধ্যে রাজ্যের পরিবর্তন হবে।

import 'dart:async';
import 'package:flutter/material.dart';
import 'home.dart';

class SplashScreen extends StatefulWidget {
  @override
  _SplashScreenState createState() => _SplashScreenState();
}

class _SplashScreenState extends State<SplashScreen> {
  @override
  void initState() {
    super.initState();
    Timer(
        Duration(seconds: 3),
        () => Navigator.of(context).pushReplacement(MaterialPageRoute(
            builder: (BuildContext context) => HomeScreen())));
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.white,
      body: Center(
        child: Image.asset('assets/splash.png'),
      ),
    );
  }
}

লজিক ইনসাইড initState () , একটি কল টাইমার () সময়কাল সঙ্গে, যেমন তোমার ইচ্ছা, আমি এটা 3 সেকেন্ডের তৈরী একবার সম্পন্ন ধাক্কা আমাদের আবেদন হোম স্ক্রীনে ন্যাভিগেটর।

দ্রষ্টব্য: অ্যাপ্লিকেশনটিতে কেবল একবার স্প্ল্যাশ স্ক্রিন প্রদর্শন করা উচিত, ব্যবহারকারীকে ফিরে বোতাম টিপে আবার এটিতে যাওয়া উচিত নয়। এর জন্য, আমরা নেভিগেটর.পুষ্প রিপ্লেসমেন্ট () ব্যবহার করি , এটি একটি নতুন স্ক্রিনে স্থানান্তরিত করবে এবং নেভিগেশন ইতিহাসের স্ট্যাক থেকে পূর্ববর্তী স্ক্রীনটি সরিয়ে ফেলবে।

আরও ভাল বোঝার জন্য, ফ্লাটার দেখুন: নিজের স্প্ল্যাশ স্ক্রিনটি ডিজাইন করুন


7
এই কাস্টমটি প্রদর্শিত হওয়ার আগে ডিফল্ট সাদা স্প্ল্যাশ স্ক্রিনটি 1+ সেকেন্ডের জন্য এখনও প্রদর্শিত হবে। এটিকে নির্মূল করতে উত্পাদিত এক্সকোড এবং অ্যান্ড্রয়েড প্রকল্পগুলিতে ওভাররাইড করতে হবে।
d3vtoolsmith

হ্যাঁ. আইওএস এবং অ্যান্ড্রয়েডে ডিফল্ট স্প্ল্যাশ স্ক্রিনটি সর্বদা উপস্থিত হবে, এই বিড়বিড় স্প্ল্যাশ স্ক্রিনটি এর সাথে যুক্ত।
মহেশ পেরি

জিনিসটি এই উদাহরণটি নির্ভরযোগ্য নয় .... যদি আপনার অ্যাপ্লিকেশনটি নেটওয়ার্ক সংযোগের মতো কারণে 3s এর বেশি লোড হয়?
ইমানুয়েল সাঙ্গা

অতিরিক্ত কাস্টমাইজেশনের জন্য, আমি এই উত্তরটি আরও সমর্থন করি। আমি একটি স্প্ল্যাশ স্ক্রিন প্রদর্শন করার সময় প্রথমে একটি HTTP অনুরোধ সম্পাদন করতে চাই। এই পদ্ধতির চেয়ে অনেক সহজ ছিল
ইদ্রিস স্ট্যাক

16

এখনও এর কোনও ভাল উদাহরণ নেই, তবে প্রতিটি প্ল্যাটফর্মের জন্য দেশীয় সরঞ্জামগুলি ব্যবহার করে আপনি নিজেই এটি করতে পারেন:

আইওএস: https://docs.nativescript.org/publishing/creating-launch-screens-ios

অ্যান্ড্রয়েড: https://www.bignerdranch.com/blog/splash-screens-the-right-way/

স্প্ল্যাশ পর্দার জন্য উদাহরণ কোডের আপডেটের জন্য 8147 ইস্যুতে সাবস্ক্রাইব করুন। যদি স্প্ল্যাশ স্ক্রিন এবং আইওএসের অ্যাপ্লিকেশনটির মধ্যে কালো ঝাঁকুনি আপনাকে বিরক্ত করে, আপডেটের জন্য 8127 ইস্যুতে সাবস্ক্রাইব করুন ।

সম্পাদনা করুন: 31 আগস্ট, 2017 পর্যন্ত, স্প্ল্যাশ স্ক্রিনগুলির জন্য উন্নত সমর্থনটি এখন নতুন প্রকল্পের টেমপ্লেটে পাওয়া যাবে। # 11505 দেখুন ।


কীভাবে একটি স্প্ল্যাশস্ক্রিন যুক্ত করতে হয় তার কোনও উদাহরণ রয়েছে? আমি যখন নতুন টেমপ্লেটটি শুরু করি তখন আমি একটি স্প্ল্যাশস্ক্রিন দেখতে পাই না
রাইড সান

@ রাইডসুন দয়া করে আমার উত্তরটি দেখুন
স্টয়েচো আন্দ্রেভ

1
আমি কীভাবে স্প্ল্যাশ-স্ক্রিনটি দীর্ঘস্থায়ী করতে পারি? ক্রিয়াকলাপে আমার কিছু কোড পরিবর্তন করা উচিত?
শূন্য.এজারো.সেভেন

তবে আমার আরও প্রয়োজন যেমন স্প্ল্যাশ চলাকালীন যখন স্থানীয় ডিবি তৈরি / আমদানি করা হয় তখন কেবল স্প্ল্যাশ শেষ হয়
stuckedoverflow

14

অ্যান্ড্রয়েডের জন্য, অ্যান্ড্রয়েড> অ্যাপ্লিকেশন> এসসিআর> প্রধান> পুনঃআরঙ্কযোগ্য> লঞ্চের_ব্যাকগ্রাউন্ড.এক্সএমএল এ যান

এখন এটি আপত্তিহীন করুন এবং আপনার চিত্রের অবস্থানের সাথে @ মিপম্যাপ / লঞ্চ_আইমেজ প্রতিস্থাপন করুন ।

<item>
      <bitmap
          android:gravity="center"
          android:src="@mipmap/launch_image" />
</item>

আপনি এখানে আপনার পর্দার রঙ পরিবর্তন করতে পারেন -

<item android:drawable="@android:color/white" />

এটি আমার পক্ষে কাজ করেছে ... তবে আইওএস অংশ ... এত ভাল খেলছে না
আইরিশগ্রিংগো


আমি এটি বুঝতে পেরেছি ... সম্ভবত আইওএসের চিত্রটি খারাপ ছিল। আইওএস এবং এন্ড্রয়েড উভয়ই এখন নিখুঁতভাবে কাজ করে। ভুয়া অ্যালার্ম
আইরিশগ্রিংগো

@ স্মৃতিরঞ্জনআরণ এই চিত্রের জন্য আদর্শ আকারটি কী?
ম্যাটিয়াস

1
চিত্রটির অবস্থানের উদাহরণ থাকলে এই উত্তরটি আরও অনেক সহায়ক হবে। অন্যথায় ব্যবহারকারীকে কীভাবে যুক্ত করতে হবে তা অনুমান করতে হবে।
রবিন মনোলি

12

এলোমেলোভাবে স্প্ল্যাশ স্ক্রিন যুক্ত করার সহজ উপায় হ'ল এই প্যাকেজটি: https://pub.dev/packages/flutter_native_splash

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

ইনস্টলেশন গাইড (প্যাকেজের লেখক দ্বারা):

1. স্প্ল্যাশ পর্দা সেট করা

আপনার প্রকল্পের পবস্পেক.আইএমএল ফাইলটিতে আপনার সেটিংস যুক্ত করুন বা আপনার সেটিংসের সাথে ফ্লুটটার_নেটিভ_স্প্ল্যাশ.আইএমএল নামের আপনার মূল প্রকল্প ফোল্ডারে একটি ফাইল তৈরি করুন।

flutter_native_splash:
  image: assets/images/splash.png
  color: "42a5f5"

চিত্র অবশ্যই একটি পিএনজি ফাইল হতে হবে।

আপনি # রঙেও ব্যবহার করতে পারেন। রঙ: "# 42a5f5" আপনি যদি নির্দিষ্ট প্ল্যাটফর্মের জন্য স্প্ল্যাশ স্ক্রিন তৈরি করতে না চান তবে আপনি অ্যান্ড্রয়েড বা আইওএসকেও মিথ্যাতে সেট করতে পারেন।

flutter_native_splash:
  image: assets/images/splash.png
  color: "42a5f5"
  android: false

যদি আপনার ছবিতে সমস্ত উপলব্ধ পর্দা (প্রস্থ এবং উচ্চতা) ব্যবহার করা উচিত তবে আপনি পূরণের সম্পত্তিটি ব্যবহার করতে পারেন।

flutter_native_splash:
  image: assets/images/splash.png
  color: "42a5f5"
  fill: true

দ্রষ্টব্য: আইওএস স্প্ল্যাশ স্ক্রিনগুলির জন্য পূরণের সম্পত্তিটি এখনও প্রয়োগ করা হয়নি।

আপনি যদি অ্যান্ড্রয়েডে পূর্ণ স্ক্রিন স্প্ল্যাশ স্ক্রিনটি অক্ষম করতে চান তবে আপনি অ্যান্ড্রয়েড_ডিজিয়েবল_ফুলস্ক্রিন সম্পত্তি ব্যবহার করতে পারেন।

flutter_native_splash:
  image: assets/images/splash.png
  color: "42a5f5"
  android_disable_fullscreen: true

2. প্যাকেজ চালান

আপনার সেটিংস যুক্ত করার পরে, সাথে প্যাকেজটি চালান

flutter pub pub run flutter_native_splash:create প্যাকেজটি শেষ হয়ে গেলে আপনার স্প্ল্যাশ স্ক্রিনটি প্রস্তুত।


8

আপনার কোডের নীচে চেষ্টা করা উচিত, আমার জন্য কাজ

import 'dart:async';
import 'package:attendance/components/appbar.dart';
import 'package:attendance/homepage.dart';
import 'package:flutter/material.dart';

class _SplashScreenState extends State<SplashScreen>
with SingleTickerProviderStateMixin {


void handleTimeout() {
  Navigator.of(context).pushReplacement(new MaterialPageRoute(
    builder: (BuildContext context) => new MyHomePage()));
}

startTimeout() async {
  var duration = const Duration(seconds: 3);
  return new Timer(duration, handleTimeout);
}

@override
void initState() {
  // TODO: implement initState
  super.initState();

  _iconAnimationController = new AnimationController(
      vsync: this, duration: new Duration(milliseconds: 2000));

  _iconAnimation = new CurvedAnimation(
      parent: _iconAnimationController, curve: Curves.easeIn);
  _iconAnimation.addListener(() => this.setState(() {}));

  _iconAnimationController.forward();

  startTimeout();
}

@override
Widget build(BuildContext context) {
  return new Scaffold(
    body: new Scaffold(
      body: new Center(
        child: new Image(
        image: new AssetImage("images/logo.png"),
        width: _iconAnimation.value * 100,
        height: _iconAnimation.value * 100,
      )),
    ),
  );
}
}

আপনি কি দয়া করে সম্পূর্ণ কোডটি পোস্ট করতে পারেন (একটি কোড যা আমরা আমাদের ভেরিয়েবলগুলি সংজ্ঞায়িত করার প্রয়োজন ছাড়াই স্বাধীনভাবে চালাতে পারি) বা গিথুব লিঙ্কটি পোস্ট করতে পারি?
বিনিয়াম

8

ব্যক্তি যিনি ইমেজ মত ত্রুটি পাচ্ছেন নিশ্চিত করুন যে আপনি যোগ করা হয় যাচাই উত্তর করতে প্রয়োগের পরে পাওয়া যায়নি @ mipmap / ic_launcher পরিবর্তে @ mipmap / ic_launcher.png


আপনার আইডিই আপনাকে এটিকে একবার বলবে আপনি একবার ত্রুটিতে আপনার কার্সারটি
ঘুরিয়ে দিলে

7

@ কলিন জ্যাকসন এবং @ স্নিপার উভয়ই সঠিক। আপনি যথাক্রমে অ্যান্ড্রয়েড এবং আইওএসে লঞ্চ চিত্রগুলি সেট আপ করতে এই পদক্ষেপগুলি অনুসরণ করতে পারেন। তারপরে আপনার মাই অ্যাপে (), আপনার আরম্ভের স্টেটে (), আপনি টাইমার সেট আপ করতে বা কোনও এপিআই কল করতে ফিউচার.ডিলেড ব্যবহার করতে পারেন। ভবিষ্যত থেকে প্রতিক্রিয়া ফিরে না আসা পর্যন্ত আপনার লঞ্চ আইকনগুলি প্রদর্শিত হবে এবং তারপরে প্রতিক্রিয়াটি আসার সাথে সাথে আপনি স্প্ল্যাশ স্ক্রিনের পরে আপনি যেতে চান এমন পর্দায় যেতে পারেন। আপনি এই লিঙ্কটি দেখতে পাবেন: স্প্ল্যাশ স্প্ল্যাশ স্ক্রিন


1
দয়া করে, এসও এর বাইরে অন্য পৃষ্ঠায় লিঙ্ক করার সময়, মৃত লিঙ্কগুলি এড়ানোর জন্য সামগ্রীটির উত্তর অংশটি এখানে পোস্ট করুন।
rak007

4

নীচের মতো একটি পৃষ্ঠা যুক্ত করা এবং রাউটিংয়ে সহায়তা হতে পারে

import 'dart:async';

import 'package:flutter/material.dart';
import 'package:flutkart/utils/flutkart.dart';
import 'package:flutkart/utils/my_navigator.dart';

class SplashScreen extends StatefulWidget {
  @override
  _SplashScreenState createState() => _SplashScreenState();
}

class _SplashScreenState extends State<SplashScreen> {
  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    Timer(Duration(seconds: 5), () => MyNavigator.goToIntro(context));
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Stack(
        fit: StackFit.expand,
        children: <Widget>[
          Container(
            decoration: BoxDecoration(color: Colors.redAccent),
          ),
          Column(
            mainAxisAlignment: MainAxisAlignment.start,
            children: <Widget>[
              Expanded(
                flex: 2,
                child: Container(
                  child: Column(
                    mainAxisAlignment: MainAxisAlignment.center,
                    children: <Widget>[
                      CircleAvatar(
                        backgroundColor: Colors.white,
                        radius: 50.0,
                        child: Icon(
                          Icons.shopping_cart,
                          color: Colors.greenAccent,
                          size: 50.0,
                        ),
                      ),
                      Padding(
                        padding: EdgeInsets.only(top: 10.0),
                      ),
                      Text(
                        Flutkart.name,
                        style: TextStyle(
                            color: Colors.white,
                            fontWeight: FontWeight.bold,
                            fontSize: 24.0),
                      )
                    ],
                  ),
                ),
              ),
              Expanded(
                flex: 1,
                child: Column(
                  mainAxisAlignment: MainAxisAlignment.center,
                  children: <Widget>[
                    CircularProgressIndicator(),
                    Padding(
                      padding: EdgeInsets.only(top: 20.0),
                    ),
                    Text(
                      Flutkart.store,
                      softWrap: true,
                      textAlign: TextAlign.center,
                      style: TextStyle(
                          fontWeight: FontWeight.bold,
                          fontSize: 18.0,
                          color: Colors.white),
                    )
                  ],
                ),
              )
            ],
          )
        ],
      ),
    );
  }
}

আপনি যদি অনুসরণ করতে চান তবে দেখুন: https://www.youtube.com/watch?v=FNBuo-7zg2Q


4

আপনি এটি করতে পারেন একাধিক উপায়, তবে আমি ব্যবহার করা সবচেয়ে সহজ উপায়:

লঞ্চ আইকনগুলির জন্য আমি ফ্লাটার লাইব্রেরি ফ্লার্ট লাঞ্চার আইকনটি ব্যবহার করি

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

শেষ অংশটি অ্যান্ড্রয়েডের রেজ ফোল্ডারে অঙ্কনযোগ্য ফোল্ডারে লঞ্চ_ব্যাকগ্রাউন্ড.এক্সএমএল সামঞ্জস্য করছে।

নীচের মত দেখতে আপনার কোডটি পরিবর্তন করুন:

<?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- <item android:drawable="@android:color/white" />
    <item android:drawable="@drawable/<splashfilename>" />     --> -->

    <!-- You can insert your own image assets here -->
    <item>
        <bitmap
            android:gravity="center"
            android:src="@mipmap/<Your splash image name here as per the mipmap folder>"/>
    </item>
</layer-list>

কয়েকটা ডেভস আমি স্প্ল্যাশটিকে অঙ্কনযোগ্য হিসাবে যুক্ত করতে দেখেছি, আমি এটি চেষ্টা করেছিলাম তবে কোনওভাবে বিল্ডটি ফ্লটার 1.0.0.0 এবং ডার্ট এসডিকে 2.0+ এ ব্যর্থ হয়। অতএব আমি বিটম্যাপ বিভাগে স্প্ল্যাশ যুক্ত করতে পছন্দ করি।

আইওএস স্প্ল্যাশ-স্ক্রিন তৈরি করা বরং সহজ।

আইওএসের রানার ফোল্ডারে কেবলমাত্র আপনার কাস্টম স্প্ল্যাশ স্ক্রিন চিত্রগুলি LaunchImage.png @ 2x, @ 3x, @ 4x এর মতো একই নামের সাথে LaunchImage.png ফাইলগুলি আপডেট করুন।

কেবলমাত্র একটি সংযোজন আমি LaunchImage.imageset এ 4x ইমেজ থাকা ভাল বলে মনে করি। 4x স্কেল বিকল্প যুক্ত করতে 3x স্কেল নীচে নিম্নলিখিত লাইনগুলি দিয়ে কেবল আপনার কোড.জসনে আপনার আপডেট করুন:

{
      "idiom" : "universal",
      "filename" : "LaunchImage@4x.png",
      "scale" : "4x"
    }

4

আপনার উপাদান অ্যাপ্লিকেশন তৈরি করুন

=> নির্ভরতা যুক্ত করুন

=> আমদানি করুন 'প্যাকেজ: স্প্ল্যাশস্ক্রিন / স্প্ল্যাশস্ক্রিন.ডার্ট';

import 'package:flutter/material.dart';
import 'package:splashscreen/splashscreen.dart';
import 'package:tic_tac_toe/HomePage.dart';
void main(){
  runApp(
    MaterialApp(
      darkTheme: ThemeData.dark(),
      debugShowCheckedModeBanner: false,
      home: new MyApp(),
    )
  );
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => new _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  Widget build(BuildContext context) {
    return new SplashScreen(
      seconds: 6,
      navigateAfterSeconds: new HomePage(),
      title: new Text('Welcome',
      style: new TextStyle(
        fontWeight: FontWeight.bold,
        fontSize: 26.0,
        color: Colors.purple,
       ),
      ),
      image: Image.asset("images/pic9.png"),
      backgroundColor: Colors.white,
      photoSize: 150.0,
    );
  }
}

এর মতো চূড়ান্ত স্ক্রিন আউটপুট আপনার প্রয়োজনীয়তা অনুসারে দ্বিতীয় পরিবর্তন করতে পারে বৃত্তটি বৃত্তাকার বৃত্তাকার হবে

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


নির্ভরতা যুক্ত করুন => গতিশীল_তত্ত্ব: ^ 1.0.1
চ্যাম্প 96 কে

সেখানে SplashScreen জন্য কোন আমদানি হয়
Tuss

হ্যাঁ ঠিক ঠিক, এগুলি করার বিভিন্ন উপায় রয়েছে তবে উত্তরে আমি আপনাকে বলব কীভাবে আপনি এই প্যাকেজ পাবটির
চ্যাম্প

4

এটি ত্রুটি মুক্ত এবং উত্তোলনের মধ্যে গতিশীল স্প্ল্যাশ স্ক্রিন যুক্ত করার সেরা উপায়।

MAIN.DART

import 'package:flutter/material.dart';
import 'constant.dart';

void main() => runApp(MaterialApp(
      title: 'GridView Demo',
      home: SplashScreen(),
      theme: ThemeData(
        primarySwatch: Colors.red,
        accentColor: Color(0xFF761322),
      ),
      routes: <String, WidgetBuilder>{
        SPLASH_SCREEN: (BuildContext context) => SplashScreen(),
        HOME_SCREEN: (BuildContext context) => BasicTable(),
        //GRID_ITEM_DETAILS_SCREEN: (BuildContext context) => GridItemDetails(),
      },
    ));


SPLASHSCREEN.DART

import 'dart:async';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:app_example/constants.dart';


class SplashScreen extends StatefulWidget {
  @override
  SplashScreenState createState() => new SplashScreenState();
}

class SplashScreenState extends State<SplashScreen>
    with SingleTickerProviderStateMixin {
  var _visible = true;

  AnimationController animationController;
  Animation<double> animation;

  startTime() async {
    var _duration = new Duration(seconds: 3);
    return new Timer(_duration, navigationPage);
  }

  void navigationPage() {
    Navigator.of(context).pushReplacementNamed(HOME_SCREEN);
  }

@override
dispose() {
  animationController.dispose();  
  super.dispose();
}

  @override
  void initState() {
    super.initState();
    animationController = new AnimationController(
      vsync: this,
      duration: new Duration(seconds: 2),
    );
    animation =
        new CurvedAnimation(parent: animationController, curve: Curves.easeOut);

    animation.addListener(() => this.setState(() {}));
    animationController.forward();

    setState(() {
      _visible = !_visible;
    });
    startTime();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Stack(
        fit: StackFit.expand,
        children: <Widget>[
          new Column(
            mainAxisAlignment: MainAxisAlignment.end,
            mainAxisSize: MainAxisSize.min,
            children: <Widget>[
              Padding(
                padding: EdgeInsets.only(bottom: 30.0),
                child: new Image.asset(
                  'assets/images/powered_by.png',
                  height: 25.0,
                  fit: BoxFit.scaleDown,
                ),
              )
            ],
          ),
          new Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              new Image.asset(
                'assets/images/logo.png',
                width: animation.value * 250,
                height: animation.value * 250,
              ),
            ],
          ),
        ],
      ),
    );
  }
}


CONSTANTS.DART

String SPLASH_SCREEN='SPLASH_SCREEN';
String HOME_SCREEN='HOME_SCREEN';

HOMESCREEN.DART

import 'package:flutter/material.dart';

class BasicTable extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text("Table Widget")),
      body: Center(child: Text("Table Widget")),
    );
  }
}

3

জলধি ভট্টের কোডটি আমার পক্ষে কাজ করে না।

ফ্লুর একটি ন্যাভিগেটর অপারেশনটিকে এমন একটি প্রসঙ্গে অনুরোধ করেছে যাতে কোনও নেভিগেটর অন্তর্ভুক্ত থাকে না '

আমি এই নিবন্ধে উল্লিখিত হিসাবে, রুটগুলি ব্যবহার করে ন্যাভিগেটর প্রসঙ্গটি আরম্ভকারী অন্য উপাদানটির অভ্যন্তরে ন্যাভিগেটর ভোক্তা উপাদানটিকে মোড়ানো কোডটি সংশোধন করেছি ।

import 'dart:async';

import 'package:flutter/material.dart';
import 'package:my-app/view/main-view.dart';

class SplashView extends StatelessWidget {

  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
        home: Builder(
          builder: (context) => new _SplashContent(),
        ),
        routes: <String, WidgetBuilder>{
          '/main': (BuildContext context) => new MainView()}
    );
  }
}

class _SplashContent extends StatefulWidget{

  @override
  _SplashContentState createState() => new _SplashContentState();
}

class _SplashContentState extends State<_SplashContent>
    with SingleTickerProviderStateMixin {

  var _iconAnimationController;
  var _iconAnimation;

  startTimeout() async {
    var duration = const Duration(seconds: 3);
    return new Timer(duration, handleTimeout);
  }

  void handleTimeout() {
    Navigator.pushReplacementNamed(context, "/main");
  }

  @override
  void initState() {
    super.initState();

    _iconAnimationController = new AnimationController(
        vsync: this, duration: new Duration(milliseconds: 2000));

    _iconAnimation = new CurvedAnimation(
        parent: _iconAnimationController, curve: Curves.easeIn);
    _iconAnimation.addListener(() => this.setState(() {}));

    _iconAnimationController.forward();

    startTimeout();
  }

  @override
  Widget build(BuildContext context) {
    return new Center(
        child: new Image(
          image: new AssetImage("images/logo.png"),
          width: _iconAnimation.value * 100,
          height: _iconAnimation.value * 100,
        )
    );
  }
}

2
আপনি কিছু ব্যাখ্যা যোগ করতে পারেন? একটি সাধারণ প্লেইন কোড ব্লক সমস্ত তথ্যবহুল নয়
সেরেন্ট পারফরম্যান্স

3

আপনি যদি কোনও দ্বিতীয় স্প্ল্যাশ স্ক্রিন চান (দেশীয়ের পরে), এখানে কাজ করার একটি সাধারণ উদাহরণ এখানে:

class SplashPage extends StatelessWidget {
  SplashPage(BuildContext context) {
    Future.delayed(const Duration(seconds: 3), () {
      // Navigate here to next screen
    });
  }

  @override
  Widget build(BuildContext context) {
    return Text('Splash screen here');
  }
}

3

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

অ্যান্ড্রয়েডের জন্য

লঞ্চ_ব্যাকগ্রাউন্ড.এক্সএমএল খুলুন তারপরে আপনি স্প্ল্যাশ স্ক্রিন চিত্র বা আপনার পছন্দসই গ্রেডিয়েন্ট রঙ রাখতে পারেন। আপনার ব্যবহারকারীরা যখন আপনার অ্যাপটি খুলবে তখন এটিই প্রথম জিনিসটি দেখবে। এখানে চিত্র বর্ণনা লিখুন

আইওএসের জন্য

এক্সকোড ব্যবহার করে আপনার অ্যাপ্লিকেশনটি খুলুন, রানার> অ্যাসেট.এক্সক্যাসেটস> লঞ্চ আইমেজে ক্লিক করুন, আপনি এখানে চিত্রটি যুক্ত করতে পারেন। আপনি যদি পজিশন লঞ্চ স্ক্রিন চিত্রটি গ্রহণ করতে চান বা এটি দেখতে চান তবে আপনি এটি LaunchScreen.storyboard এ সম্পাদনা করতে পারেন।

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


3

আপনার ঝাঁকুনির অ্যাপ্লিকেশনটির জন্য আইওএস এবং অ্যান্ড্রয়েড প্ল্যাটফর্ম উভয়টিতে স্প্ল্যাশ স্ক্রিনটি কনফিগার করার পদক্ষেপ এখানে রয়েছে।

আইওএস প্ল্যাটফর্ম

অ্যাপল অ্যাপ স্টোরে জমা দেওয়া সমস্ত অ্যাপ্লিকেশনগুলিকে অবশ্যই অ্যাপ্লিকেশনটির লঞ্চ স্ক্রিন সরবরাহ করতে একটি এক্সকোড স্টোরিবোর্ড ব্যবহার করতে হবে। আসুন এটি 3 টি পদক্ষেপে করুন: -

পদক্ষেপ 1 : আপনার অ্যাপ্লিকেশন ডিরেক্টরিটির মূল থেকে আইওএস / রানার.এক্সকোর্সস্পেস খুলুন।

পদক্ষেপ 2 : প্রকল্প ন্যাভিগেটর থেকে রানার / অ্যাসেটস এক্সক্যাসেট নির্বাচন করুন এবং সমস্ত আকারের আপনার লঞ্চ চিত্রগুলি টেনে আনুন (2x, 3x ইত্যাদি)। আপনি https://appicon.co/#image-sets থেকে বিভিন্ন আকারের চিত্রও তৈরি করতে পারেন

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

পদক্ষেপ 3 : আপনি দেখতে পাচ্ছেন যে লঞ্চস্ক্রিন. স্টোরবোর্ড ফাইলটি সরবরাহিত চিত্র দেখায়, এখানে আপনি কেবল চিত্রটি টেনে চিত্রের অবস্থান পরিবর্তন করতে পারেন। আরও তথ্যের জন্য দয়া করে অফিসিয়াল ডকুমেন্টেশন https://developer.apple.com/design/human-interface-guidlines/ios/visual-design/launch-screen/ দেখুন

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

অ্যান্ড্রয়েড প্ল্যাটফর্ম

অ্যান্ড্রয়েডে, আপনার অ্যান্ড্রয়েড অ্যাপ্লিকেশন আরম্ভ করার সময় একটি লঞ্চ স্ক্রিন প্রদর্শিত হয়। আসুন 3 টি ধাপে এই লঞ্চ পর্দা সেট করুন: -

পদক্ষেপ 1 : অ্যান্ড্রয়েড / অ্যাপ্লিকেশন / এসসিআর / প্রধান / রেজো / ড্রয়যোগ্য / লঞ্চ_ব্যাকগ্রাউন্ড.এক্সএমএল ফাইল খুলুন।

পদক্ষেপ 2 : 4 নং লাইনে আপনি পছন্দসই রঙ নির্বাচন করতে পারেন: -

<item android:drawable="@android:color/white" />

পদক্ষেপ 3 : 10 নং লাইনে আপনি চিত্রটি পরিবর্তন করতে পারবেন: -

android:src="@mipmap/launch_image"

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

সবই, তুমি শেষ! শুভ কোডিং :)


0

অ্যান্ড্রয়েড
অ্যাপ্লিকেশন -> এসআরসি -> প্রধান -> পুনরায় -> ড্রবেল>> লঞ্চ_ব্যাকগ্রাউন্ড.এক্সএমএল এবং এর জন্য মন্তব্য করা ব্লকটি আপত্তিহীন করুন

<item>
  <bitmap
      android:gravity="center"
      android:src="@mipmap/launch_image" /></item>

কোন এক মুখ ভালো কোডিং পরে ত্রুটি
স্থানীয় অ্যান্ড্রয়েড মত কমবে অ্যান্ড্রয়েড স্টুডিও বা বাতিল ক্যাশে এবং reset.This সিস্টেম সাথে ব্যবহারের সিঙ্ক আমার সমস্যা ঝাপটানি ডিবাগ মোডে স্প্ল্যাশ পর্দা ক্লিক করুন.মুছে দেওয়ার পরে বিল্ড কিছু সময় নিতে নিতে মীমাংসিত


0

ফ্লাটার.দেব ইতিমধ্যে এর জন্য সর্বোত্তম উত্তর দেয়, এটি কোনও সমস্যা নয়, সমস্যা নয়, কেবল কনফিগারেশন। স্রেফ পড়ার জন্য সময় নিন এবং সমস্ত কিছু সমাধান হয়ে যাবে। দিনটি সকলের ভালো কাটুক.

https://flutter.dev/docs/development/ui/advanced/splash-screen


এটি আর প্রাসঙ্গিক বলে মনে হয় না, কারণ ইতিমধ্যে 9 ই এপ্রিল একই উত্তর দেওয়া হয়েছিল।
কেইমেনো

তবে আমার দিকটি সবচেয়ে ভাল ফন্টের দিকে সরাসরি।
ফ্যাব্রেসিও জাস্টো

0

আপনি এটি দুটি উপায়ে তৈরি করতে পারেন

  1. নেটিভ প্যাকেজ এবং একটি প্রাথমিক পৃষ্ঠায় যান। নেটিভ অ্যান্ড্রয়েড প্যাকেজের মতো একটি অঙ্কনযোগ্য তৈরি করুন
  2. কিছু সময়ের জন্য প্রদর্শন করতে একটি ডার্ট স্ক্রীন তৈরি করুন

আমি সাদা পর্দা অপসারণ এবং স্প্ল্যাশ স্ক্রিন প্রদর্শন এখানে একটি সম্পূর্ণ ব্যাখ্যা পেয়েছি


-1
SplashScreen(
          seconds: 3,
          navigateAfterSeconds: new MyApp(),
          // title: new Text(
          //   'Welcome In SplashScreen',
          //   style: new TextStyle(fontWeight: FontWeight.bold, fontSize: 20.0),
          // ),
          image: new Image.network('https://upload.wikimedia.org/wikipedia/commons/thumb/b/bd/Tesla_Motors.svg/1200px-Tesla_Motors.svg.png'),
          backgroundColor: Colors.white,
          styleTextUnderTheLoader: new TextStyle(),
          photoSize: 150.0,
          loaderColor: Colors.black),
    ),
  );
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.