パッケージ、リポジトリ、アプリカテゴリを検索

likk_picker のカバー
パッケージ詳細v1.1.5+1

likk_picker

Photo Manager からのカメラとギャラリー選択。Facebook Messenger のカスタムビュー。(画像ピッカー、カメラ、ギャラリーリーダー)

30日間ダウンロード
44
いいね数
60
Pub ポイント
50

パッケージをインストール

flutter pub add likk_picker

パッケージ概要

公開情報に基づく選定ガイドです。参考としてご利用ください。

likk_picker は、Facebook Messenger のメディア選択インターフェースを参考にしたカスタマイズ可能な画像ピッカーを提供する Flutter パッケージです。Photo Manager ライブラリに基づいて構築されており、ローカルストレージから画像を選択・管理したり、デバイスのカメラで新しい画像を撮影したりできます。カスタム UI コンポーネントをサポートしており、洗練されたネイティブ風のメディア選択体験が必要なアプリに最適です。アセットの取得を簡素化しつつ、開発者がピッカーの外観や動作をカスタマイズできる柔軟性を維持しています。

用途

  • ソーシャルメディアアプリの写真アップロード
  • チャットアプリのメディア共有
  • ユーザーのプロフィール画像選択
  • コンテンツ作成ツール
  • eコマース製品画像のキャプチャ
  • 複数画像選択ワークフロー

主な機能

  • カメラとギャラリーの統合
  • Facebook Messenger のようなカスタマイズ可能な UI
  • 複数の画像選択をサポート
  • Photo Manager ライブラリに基づいて構築されています
  • 軽量で統合が簡単
  • クロスプラットフォーム互換性

適している対象

  • チャットインターフェースを開発する開発者
  • 直感的なメディアピッカーが必要なアプリ
  • カスタムメディア選択UIを必要とするプロジェクト
  • ユーザー生成コンテンツに焦点を当てたモバイルアプリ
  • 標準的な画像ピッカーの軽量な代替品を求めるチーム

注意事項

  • カメラおよびストレージのためのプラットフォーム固有の権限が必要です
  • 画像資産に限定(動画対応なし)
  • 外部のフォトマネージャライブラリに依存しています
  • 完全なカスタマイズには追加のスタイルが必要になる場合があります
  • 組み込みの画像編集機能なし

元の README

関連するソースリポジトリの README 原文のスナップショットです。最新の内容はリポジトリをご覧ください。

Likk Picker

Platform Pub Package likes Forks

Buy Me A Coffee

A flutter package which is clone of facebook messenger gallery picker and camera, combined as single component. Gallery view and Camera view can also be use as Flutter widget. Under the hood likk picker used Photo Manager and Camera.


Table of contents


Installing

1. Add dependency

Add this to your package's pubspec.yaml file:

dependencies:
  likk_picker: ^latest_version
2. Install it

You can install packages from the command line:

with pub:

$ pub get

with Flutter:

$ flutter pub get
3. Import it

Now in your Dart code, you can use:

import 'package:likk_picker/likk_picker.dart';

Platform Setup

For more details (if needed) you can go through Photo Manager and Camera readme section as well.

Android

Change the minimum Android sdk version to 21 (or higher) in your android/app/build.gradle file.

minSdkVersion 21

Required permissions: INTERNET, READ_EXTERNAL_STORAGE, WRITE_EXTERNAL_STORAGE, ACCESS_MEDIA_LOCATION. If you don't need the ACCESS_MEDIA_LOCATION permission, see Disable ACCESS_MEDIA_LOCATION permission.

glide

Android native use glide to create image thumb bytes, version is 4.11.0.

If your other android library use the library, and version is not same, then you need edit your android project's build.gradle.

rootProject.allprojects {

    subprojects {
        project.configurations.all {
            resolutionStrategy.eachDependency { details ->
                if (details.requested.group == 'com.github.bumptech.glide'
                        && details.requested.name.contains('glide')) {
                    details.useVersion '4.11.0'
                }
            }
        }
    }
}

And, if you want to use ProGuard, you can see the ProGuard of Glide.

Remove Media Location permission

Android contains ACCESS_MEDIA_LOCATION permission by default.

This permission is introduced in Android Q. If your app doesn't need this permission, you need to add the following node to the Android manifest in your app.

<uses-permission
  android:name="android.permission.ACCESS_MEDIA_LOCATION"
  tools:node="remove"
  />

If you found some warning logs with Glide appearing, then the main project needs an implementation of AppGlideModule. See Generated API.

IOS

Add following content to info.plist.

<key>NSPhotoLibraryUsageDescription</key>
<string>Replace with your permission description..</string>
<key>NSCameraUsageDescription</key>
<string>Replace with your permission description..</string>
<key>NSMicrophoneUsageDescription</key>
<string>Replace with your permission description..</string>

Gallery

  1. Use GalleryViewWrapper to make gallery view collapsible otherwise ignore it.
class PickerDemo extends StatelessWidget {
 late final GalleryController controller;
 
 ...

 @override
 Widget build(BuildContext context) {
   return GalleryViewWrapper(
     controller: controller,
     child: Scaffold(
       body: ...
     ),
   );
 }
}
  1. GalleryController can be used for extra setting and picking media.
  • Using pick() function on controller to pick media.
class PickerDemo extends StatelessWidget {
  late final GalleryController controller;

  @override
  void initState() {
    super.initState();
    controller = GalleryController(
      gallerySetting: const GallerySetting(
        albumSubtitle: 'Collapsable',
        enableCamera: true,
        maximum: 10,
        requestType: RequestType.all,
      ),
      panelSetting: const PanelSetting(topMargin: 24.0),
    );
  }

  ...

  onPressed : () async {
    final entities = await controller.pick();
  }

  ...
}
  1. Using GalleryViewField similarly as flutter TextField to pick media.
  • onChanged – triggered every time user select/unselect media

  • onSubmitted – triggered when user done with selection

GalleryViewField(
  selectedEntities: [],
  onChanged: (entity, isRemoved) {
     ...
  },
  onSubmitted: (list) {
     ...
  }
  child: const Icon(Icons.camera),
),
  1. You can also use GalleryView as a Widget.

Camera

  1. Using pick() function on CameraView to pick media.
  ...
  onPressed : () async {
    final entity = await CameraView.pick();
  }
  ...
  1. Using CameraViewField similarly as flutter TextField to pick media.
  • onCapture – triggered when photo/video capture completed
GalleryViewField(
  onCapture: (entity) {
     ...
  },
  child: const Icon(Icons.camera),
),
  1. You can also use CameraView as a Widget.

Bugs or Requests

If you encounter any problems feel free to open an issue. If you feel the library is missing a feature, please raise a ticket on GitHub and I'll look into it. Pull request are also welcome.


Maintainers

Donate

カテゴリー

依存関係

依存関係一覧 5 件

ソースリポジトリ

このパッケージを使用しているプロジェクト

データはまだありません。