Image Cropping Library for Android

Overview

uCrop - Image Cropping Library for Android

This project aims to provide an ultimate and flexible image cropping experience. Made in Yalantis

How We Created uCrop

Check this project on Dribbble

Usage

For a working implementation, please have a look at the Sample Project - sample

Get it on Google Play

  1. Include the library as local library project.

    allprojects {
       repositories {
          jcenter()
          maven { url "https://jitpack.io" }
       }
    }
    

    implementation 'com.github.yalantis:ucrop:2.2.6' - lightweight general solution

    implementation 'com.github.yalantis:ucrop:2.2.6-native' - get power of the native code to preserve image quality (+ about 1.5 MB to an apk size)

  2. Add UCropActivity into your AndroidManifest.xml

    <activity
        android:name="com.yalantis.ucrop.UCropActivity"
        android:screenOrientation="portrait"
        android:theme="@style/Theme.AppCompat.Light.NoActionBar"/>
    
  3. The uCrop configuration is created using the builder pattern.

    UCrop.of(sourceUri, destinationUri)
        .withAspectRatio(16, 9)
        .withMaxResultSize(maxWidth, maxHeight)
        .start(context);
  4. Override onActivityResult method and handle uCrop result.

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (resultCode == RESULT_OK && requestCode == UCrop.REQUEST_CROP) {
            final Uri resultUri = UCrop.getOutput(data);
        } else if (resultCode == UCrop.RESULT_ERROR) {
            final Throwable cropError = UCrop.getError(data);
        }
    }
  5. You may want to add this to your PROGUARD config:

    -dontwarn com.yalantis.ucrop**
    -keep class com.yalantis.ucrop** { *; }
    -keep interface com.yalantis.ucrop** { *; }
    

Customization

If you want to let your users choose crop ratio dynamically, just do not call withAspectRatio(x, y).

uCrop builder class has method withOptions(UCrop.Options options) which extends library configurations.

Currently you can change:

  • image compression format (e.g. PNG, JPEG, WEBP), compression
  • image compression quality [0 - 100]. PNG which is lossless, will ignore the quality setting.
  • whether all gestures are enabled simultaneously
  • maximum size for Bitmap that is decoded from source Uri and used within crop view. If you want to override default behaviour.
  • toggle whether to show crop frame/guidelines
  • setup color/width/count of crop frame/rows/columns
  • choose whether you want rectangle or oval crop area
  • the UI colors (Toolbar, StatusBar, active widget state)
  • and more...

Compatibility

  • Library - Android ICS 4.0+ (API 14) (Android GINGERBREAD 2.3+ (API 10) for versions <= 1.3.2)
  • Sample - Android ICS 4.0+ (API 14)
  • CPU - armeabi armeabi-v7a x86 x86_64 arm64-v8a (for versions >= 2.1.2)

Changelog

Version: 2.2.5

Version: 2.2.4

  • AndroidX migration
  • Redesign
  • Several fixes including #550

Version: 2.2.3

  • Several fixes including #445, #465 and more!
  • Material design support
  • uCrop fragment as child fragment
  • Added Italian language

Version: 2.2.2

  • uCrop fragment added
  • bugfix

Version: 2.2.1

  • Fix including #285

Version: 2.2

Version: 2.1

  • Fixes issue with EXIF data (images taken on front camera with Samsung devices mostly) #130 #111
  • Added API to set custom set of aspect ratio options for user. #131
  • Added API to set all configs via UCrop.Options class. #126
  • Added ABI x86_64 support. #105

Version: 2.0

  • Native image crop (able to crop high-resolution images, e.g. 16MP & 32MP images on Nexus 5X).
  • WebP compression format is not supported at the moment (choose JPEG or PNG).
  • Now library copies EXIF data to cropped image (size and orientation are updated).

Version: 1.5

  • Introduced "Freestyle" crop (you can resize crop rectangle by dragging it corners) #32
  • Now image & crop view paddings are not associated #68
  • Updated API

Version: 1.4

  • Introduced http(s) Uri support!
  • Image is cropped in background thread.
  • Showing loader while Bitmap is processed (both loading and cropping).
  • Several bug fixes.
  • Couple new things to configure.
  • Updated minSdkVersion to Android ICS 4.0 (no reason to support couple percents of old phones).

Version: 1.3

  • Image is loaded in background thread. Better error-handling for image decoding.

  • Improved EXIF data support (rotation and mirror).

  • Small UI updates.

  • Couple new things to configure.

  • Sample updated with possibility to choose custom aspect ratio.

Version: 1.2

  • Updated core logic so an image corrects its position smoothly and obviously.

Version: 1.1

  • UCrop builder was updated and now UCrop.Options class has even more values to setup.

Version: 1.0

  • Initial Build

Let us know!

We’d be really happy if you sent us links to your projects where you use our component. Just send an email to [email protected] And do let us know if you have any questions or suggestion regarding the library.

Apps using uCrop

License

Copyright 2017, Yalantis

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Comments
  • Issue on Android Q

    Issue on Android Q

    Launching Ucrop with image URI from a device image on Android Q throws Permission denied error:

    E/TransformImageView: onFailure: setImageUri
        java.io.FileNotFoundException: open failed: EACCES (Permission denied)
            at android.os.ParcelFileDescriptor.openInternal(ParcelFileDescriptor.java:315)
            at android.os.ParcelFileDescriptor.open(ParcelFileDescriptor.java:220)
            at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:1498)
            at android.content.ContentResolver.openFileDescriptor(ContentResolver.java:1338)
            at android.content.ContentResolver.openFileDescriptor(ContentResolver.java:1286)
            at com.yalantis.ucrop.task.BitmapLoadTask.doInBackground(BitmapLoadTask.java:100)
            at com.yalantis.ucrop.task.BitmapLoadTask.doInBackground(BitmapLoadTask.java:44)
            at android.os.AsyncTask$3.call(AsyncTask.java:378)
            at java.util.concurrent.FutureTask.run(FutureTask.java:266)
            at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:289)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
            at java.lang.Thread.run(Thread.java:919)
    

    This only occurs on android Q devices when the target sdk version is 29

    duplicate 
    opened by raylee4204 25
  • Android Q java.io.FileNotFoundException: open failed: EACCES (Permission denied)

    Android Q java.io.FileNotFoundException: open failed: EACCES (Permission denied)

    Hi,

    I have an issue related to the android 10 or Q in which when picking an image from gallery the app crashes and mentions java.io.FileNotFoundException: open failed: EACCES (Permission denied). While it is working normally for android devices below 29. Note that the target API in gradle is 29.

    Kindly your kind support is appreciated.

    opened by Anonymous123456789123 15
  • Failed to resolve: com.github.yalantis:ucrop:2.2.1

    Failed to resolve: com.github.yalantis:ucrop:2.2.1

    Hi, first of all I must say this library is good and I've been using it in my java project. The problem is I'm getting the above error when I try to add it to the gradle in a Kotlin android project. Please tell me a work around for the issue

    Im using Android Studio 2.3.2 with gradle version 3.3 with kotlin plugin

    opened by sidharthanil 15
  • FileUtils NumberFormatException

    FileUtils NumberFormatException

    Do you want to request a feature or report a bug? Bug

    What is the current behavior? Throwing exception when selected an image from Downloads folder

    What is the expected behavior? Process the image properly

    If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem. Just copy some image to /sdcard/Download folder and try to open with through the app

    Please attach any image files, URL and stack trace that can be used to reproduce the bug.

    E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #6 Process: br.com.saibala.novelo, PID: 7256 java.lang.RuntimeException: An error occurred while executing doInBackground() at android.os.AsyncTask$3.done(AsyncTask.java:325) at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383) at java.util.concurrent.FutureTask.setException(FutureTask.java:252) at java.util.concurrent.FutureTask.run(FutureTask.java:271) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) at java.lang.Thread.run(Thread.java:764) Caused by: java.lang.NumberFormatException: For input string: "raw:/storage/emulated/0/Download/vm.png" at java.lang.Long.parseLong(Long.java:590) at java.lang.Long.valueOf(Long.java:804) at com.yalantis.ucrop.util.FileUtils.getPath(FileUtils.java:159) at com.yalantis.ucrop.task.BitmapLoadTask.processInputUri(BitmapLoadTask.java:171) at com.yalantis.ucrop.task.BitmapLoadTask.doInBackground(BitmapLoadTask.java:90) at com.yalantis.ucrop.task.BitmapLoadTask.doInBackground(BitmapLoadTask.java:41) at android.os.AsyncTask$2.call(AsyncTask.java:305) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243)  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)  at java.lang.Thread.run(Thread.java:764) 

    Which versions of uCrop, and which Android API versions are affected by this issue? Did this work in previous versions of uCrop?

    2.2.0. I've never tried that in previous versions.

    opened by christianlacerda 13
  • SecurityException in Version 2.2.0 when trying to display the image from the Gallery

    SecurityException in Version 2.2.0 when trying to display the image from the Gallery

    Do you want to request a feature or report a bug? Bug

    What is the current behavior? When selecting a picture from the Gallery and opening it with uCrop, via the returned Uri from the onActivityResult intent, the app will crash:

    Caused by: java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/images/media from pid=14071, uid=10350 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()

    What is the expected behavior? To not crash and nonetheless display the chosen picture as it was done in version 1.5.0 of the library.

    If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem.

    1. Let the user choose a picture from the gallery
    2. Take the Uri from the onActivityResult callback and open uCrop with it
    3. App will crash

    Which versions of uCrop, and which Android API versions are affected by this issue? Did this work in previous versions of uCrop? Android versions affected: >= Marshmallow Version 2.2.0 of uCrop is affected.

    bug 
    opened by vanniktech 13
  • Change theme color

    Change theme color

    It's possible to change the color orange #FF6E40 (ucrop_color_toolbar and ucrop_color_widget_active) with the colorPrimary in your theme? And allow to do that to adapt the style to the application :

    <activity
        android:name="com.yalantis.ucrop.UCropActivity"
        android:screenOrientation="portrait"
        android:theme="@style/AppTheme"/>
    
    enhancement 
    opened by lopspower 13
  • Bitmap too large~

    Bitmap too large~

    `OpenGLRenderer: Bitmap too large to be uploaded into a texture (3120x4160, max=4096x4096) 05-18 15:54:25.778 8210-8236/com.yalantis.ucrop.sample W/OpenGLRenderer: Bitmap too large to be uploaded into a texture (3120x4160, max=4096x4096)

    05-18 15:54:25.779 8210-8236/com.yalantis.ucrop.sample W/OpenGLRenderer: Bitmap too large to be uploaded into a texture (3120x4160, max=4096x4096)

    05-18 15:54:25.793 8210-8236/com.yalantis.ucrop.sample W/OpenGLRenderer: Bitmap too large to be uploaded into a texture (3120x4160, max=4096x4096)

    05-18 15:54:25.794 8210-8236/com.yalantis.ucrop.sample W/OpenGLRenderer: Bitmap too large to be uploaded into a texture (3120x4160, max=4096x4096)

    05-18 15:54:25.794 8210-8236/com.yalantis.ucrop.sample W/OpenGLRenderer: Bitmap too large to be uploaded into a texture (3120x4160, max=4096x4096)`

    bug 
    opened by ikkyu0319 12
  • Bitmap too large to be uploaded into a texture

    Bitmap too large to be uploaded into a texture

    When I take a picture use UCrop to crop, but I get this Warning.

    W/OpenGLRenderer: Bitmap too large to be uploaded into a texture (3120x4160, max=4096x4096)

    I think the code does not handle the acceleration of the hardware to open the pixel limit

    opened by mrhuo 11
  • Library won't work in devices pre lollipop.

    Library won't work in devices pre lollipop.

    Related https://github.com/Yalantis/uCrop/issues/85

    Done the following in colors.xml

    @color/primary Doesn't work, get the following error

    E/UCropActivity: Mutate() is not supported for older platform - Therefore, override color resource (ucrop_color_toolbar_widget) in your app to make it work on pre-L devices

    Why isn't this defaulted to something? Or detected as an older version??

    question 
    opened by ollydixon 11
  • Change colors of UI controls

    Change colors of UI controls

    Hi, I'm not see methods for setup colors for UI elements such as toolbar, bittons for scale and rotate or icons for close and next. Does this functionlaity would be implemented or not ?

    opened by gromiloff 11
  • EXIF Handling

    EXIF Handling

    The EXIF orientation handling does not seem to work.

    1. Only four cases are considered out of the possible eight orientations
    2. It doesn't seem to work for anything other than orientation normal.

    I tested using the reference EXIF orientation images at https://github.com/recurser/exif-orientation-examples.

    enhancement 
    opened by JohnWowUs 11
  • Fatal Exception: java.lang.RuntimeException:  Canvas: trying to use a recycled bitmap android.graphics.Bitmap

    Fatal Exception: java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap

    Do you want to request a feature or report a bug? bug

    What is the current behavior? Fatal Exception: java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@6991aad

    What is the expected behavior? No exception

    If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem. Don't know, cause taken from user's device from Crashlytics

    Please attach any image files, URL and stack trace that can be used to reproduce the bug.

    stacktrace
    Fatal Exception: java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@6991aad
           at android.graphics.BaseCanvas.throwIfCannotDraw(BaseCanvas.java:87)
           at android.graphics.RecordingCanvas.throwIfCannotDraw(RecordingCanvas.java:264)
           at android.graphics.BaseRecordingCanvas.drawBitmap(BaseRecordingCanvas.java:97)
    
           at com.yalantis.ucrop.util.FastBitmapDrawable.draw(FastBitmapDrawable.java:41)
    
           at android.widget.ImageView.onDraw(ImageView.java:1462)
           at android.view.View.draw(View.java:23898)
           at android.view.View.updateDisplayListIfDirty(View.java:22767)
           at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:5339)
           at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:5311)
           at android.view.View.updateDisplayListIfDirty(View.java:22714)
           at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:5339)
           at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:5311)
           at android.view.View.updateDisplayListIfDirty(View.java:22714)
           at android.view.View.draw(View.java:23628)
           at android.view.ViewGroup.drawChild(ViewGroup.java:5355)
           at android.view.ViewGroup.dispatchDraw(ViewGroup.java:5112)
           at android.view.View.updateDisplayListIfDirty(View.java:22753)
           at android.view.View.draw(View.java:23628)
           at android.view.ViewGroup.drawChild(ViewGroup.java:5355)
           at android.view.ViewGroup.dispatchDraw(ViewGroup.java:5112)
           at android.view.View.updateDisplayListIfDirty(View.java:22753)
           at android.view.View.draw(View.java:23628)
           at android.view.ViewGroup.drawChild(ViewGroup.java:5355)
           at android.view.ViewGroup.dispatchDraw(ViewGroup.java:5112)
           at android.view.View.updateDisplayListIfDirty(View.java:22753)
           at android.view.View.draw(View.java:23628)
           at android.view.ViewGroup.drawChild(ViewGroup.java:5355)
           at android.view.ViewGroup.dispatchDraw(ViewGroup.java:5112)
           at android.view.View.updateDisplayListIfDirty(View.java:22753)
           at android.view.View.draw(View.java:23628)
           at android.view.ViewGroup.drawChild(ViewGroup.java:5355)
           at android.view.ViewGroup.dispatchDraw(ViewGroup.java:5112)
           at android.view.View.updateDisplayListIfDirty(View.java:22753)
           at android.view.View.draw(View.java:23628)
           at android.view.ViewGroup.drawChild(ViewGroup.java:5355)
           at android.view.ViewGroup.dispatchDraw(ViewGroup.java:5112)
           at android.view.View.draw(View.java:23901)
           at com.android.internal.policy.DecorView.draw(DecorView.java:1378)
           at android.view.View.updateDisplayListIfDirty(View.java:22767)
           at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:602)
           at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:608)
           at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:684)
           at android.view.ViewRootImpl.draw(ViewRootImpl.java:5445)
           at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:5153)
           at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:4217)
           at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2924)
           at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:10513)
           at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1108)
           at android.view.Choreographer.doCallbacks(Choreographer.java:866)
           at android.view.Choreographer.doFrame(Choreographer.java:797)
           at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1092)
           at android.os.Handler.handleCallback(Handler.java:938)
           at android.os.Handler.dispatchMessage(Handler.java:99)
           at android.os.Looper.loopOnce(Looper.java:226)
           at android.os.Looper.loop(Looper.java:313)
           at android.app.ActivityThread.main(ActivityThread.java:8751)
           at java.lang.reflect.Method.invoke(Method.java)
           at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)
    

    Which versions of uCrop, and which Android API versions are affected by this issue? Did this work in previous versions of uCrop?

    Lib version: 2.2.6 Android version: 12 Device: Galaxy A13 5G work in previous version: unknown

    opened by code-n-roll 0
  • Migrate uCrop repository to mavenCentral as an alternative for jitpack

    Migrate uCrop repository to mavenCentral as an alternative for jitpack

    Do you want to request a feature or report a bug? I want sustainable and pro-available service in case jitpack suffers their Bi-monthly outage.

    What is the current behavior? uCrop is hosted on jitpack which goes down twice a month causing a outage in CI/CD builds.

    What is the expected behavior? Expected behavior is to have an alternative hosted on mavenCentral which is more reliable than jitpack .

    If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem. Check the current jit[ack website. Not their status page. That page is misleading.

    Please attach any image files, URL and stack trace that can be used to reproduce the bug.

    Which versions of uCrop, and which Android API versions are affected by this issue? Did this work in previous versions of uCrop?

    opened by av153k 2
  • Not able to zoom image using pinch to zoom.

    Not able to zoom image using pinch to zoom.

    Hello, I am facing an issue with zooming the image. When I am trying to pinch to zoom then not able to zoom in/zoom out. So can you please guide me on how I can implement this?

    Note: I don't want to zoom in using the scrollbar.

    opened by dishankEbizz 1
  • startActivityForResult is now deprecated

    startActivityForResult is now deprecated

    This is the configuration of my project

    defaultConfig { applicationId "com.example.myapplication" minSdk 28 targetSdk 32 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" }

    it's not a bug, I just want to inform you that startActivityForResult is now deprecated and I think you should adapt the library to the new way of using this function.

    opened by RACA951106 1
  • Aspect ratio switching

    Aspect ratio switching

    Hi @shliama , @p1nkydev , @Legementarion , @OleksandNekrasov .

    Issue

    When double tapping on the aspect ratio presets it inverts the aspect ratio.

    Expected outcome

    The aspect ratios should remain the same.

    Video

    https://user-images.githubusercontent.com/70595829/207236194-7a4ecde6-a4b8-4ff5-9885-8c69d108b6cc.mp4

    Additional

    I am using this package in flutter by using the flutter_image_cropper wrapper. This package only uses Platform channels to expose Dart API to call to native libraries, if you can find a proper API to change this behavior, I can expose it to Dart codes.

    Any assistance would be very appreciated 😎

    opened by cavedweller 0
Releases(2.2.8-native)
Owner
Yalantis
Knowledge is power and the way to get power is by sharing knowledge. We are open source because this is a smart way to live, work and play.
Yalantis
An image loading and caching library for Android focused on smooth scrolling

Glide | View Glide's documentation | 简体中文文档 | Report an issue with Glide Glide is a fast and efficient open source media management and image loading

Bump Technologies 33.2k Dec 31, 2022
A powerful image downloading and caching library for Android

Picasso A powerful image downloading and caching library for Android For more information please see the website Download Download the latest AAR from

Square 18.4k Dec 31, 2022
Example usage of work manager in Android, while doing this study, image downloading was preferred as a method.

android-workmanager-example Example usage of work manager in Android, while doing this study, image downloading was preferred as a method. Java 11 com

Adil Çetin 1 Jan 29, 2022
Small app to create icon sets for Linux, Windows, OSX, Android and IOS from a single PNG image

FXIconcreator Small app to create icon sets (multi resolution) for Linux, Windows, OSX from a single PNG image Reason for creating such an app was tha

null 18 Aug 4, 2022
The lightweight library for compress image, video, and audio with an awesome experience

Would you like to support me? react-native-compressor Compress videos, images and audio before upload react-native-compressor package is a set of func

Shobbak 265 Jan 1, 2023
Sample serverless application written in Java compiled with GraalVM native-image

Serverless GraalVM Demo This is a simple serverless application built in Java and uses the GraalVM native-image tool. It consists of an Amazon API Gat

AWS Samples 143 Dec 22, 2022
A simple app to use Xposed without root, unlock the bootloader or modify system image, etc.

中文文档 Introduction VirtualXposed is a simple App based on VirtualApp and epic that allows you to use an Xposed Module without needing to root, unlock t

VirtualXposed 14k Jan 8, 2023
Shows Image you select on Top of every Window by holding the button you choose

ImageOnTop What it does? Shows Image you select on Top of every Window by holding the button you choose. How to use it? Press a keyboard key you want

null 1 Jan 23, 2022
Presti 5 Nov 19, 2022
Convert Journeymap image data into Xaero format for Xaero's minecraft map mod

JMtoXaero JMtoXaero is a tool to convert JourneyMap tiles to regions used by Xaero's World Map Description Reads images from the Journeymap folder Wri

Negative Entropy 14 Dec 21, 2022
Tinker is a hot-fix solution library for Android, it supports dex, library and resources update without reinstall apk.

Tinker Tinker is a hot-fix solution library for Android, it supports dex, library and resources update without reinstalling apk. Getting started Add t

Tencent 16.6k Dec 30, 2022
This app brings Privacy dashboard features from Android 12 to older android devices.

PrivacyDashboard This app brings Privacy dashboard features from Android 12 to older android devices. Have you ever thought which apps are accessing y

Rushikesh Kamewar 234 Jan 7, 2023
Share food-Android- - Food donation coded in native android with firebase, google maps api and php server xampp

share_food-Android- Instructions: 1. Create a firebase account and link it with the project via google-services.json. 2. This project also uses a XAMP

Abubakar 3 Dec 28, 2021
Simple Android app during a coding night. Just Learning Firebase and Android

KUI-App Simple Android app during a coding night. Just Learning Firebase and Android What we learned: Some basics of Android Basic setup of Firebase:

Kibabii University Informatics Club (KUI) 7 Aug 28, 2022
A complete and performing library to highlight text snippets (EditText, SpannableString and TextView) using Spannable with Regular Expressions (Regex) for Android.

Highlight A complete and performing library to highlight text snippets (EditText/Editable and TextView) using Spannable with Regular Expressions (Rege

Irineu A. Silva 16 Dec 22, 2022
An Android library for managing images and the memory they use.

Fresco Fresco is a powerful system for displaying images in Android applications. Fresco takes care of image loading and display, so you don't have to

Meta 16.9k Jan 3, 2023
Powerful and flexible library for loading, caching and displaying images on Android.

Universal Image Loader The great ancestor of modern image-loading libraries :) UIL aims to provide a powerful, flexible and highly customizable instru

Sergey Tarasevich 16.8k Jan 2, 2023
MFP (Mathematic language For Parallel computing) Android library

MFPAndroLib This is MFP (Mathematic language For Parallel computing) Android library project. MFP is a novel scripting programming language designed a

Tony Cui 6 Sep 5, 2022
Library App - Using Android studio / Final project

Library-App Library App - Using Android studio / Final project Screens SplashScreen: it’s launcher activity will be moved to MainActivity auto after 2

Baseel 3 Feb 2, 2022