DS Photo Editor SDK

A Photo Editor Built for Developers

White-Label SDK For Android

User Interface Customization

1. Colors:

You can change background color by passing in the color code as below:

dsPhotoEditorIntent.putExtra(DsPhotoEditorConstants.DS_MAIN_BACKGROUND_COLOR, 0xff444444);

Header and footer background color can be changed too:

dsPhotoEditorIntent.putExtra(DsPhotoEditorConstants.DS_TOOL_BAR_BACKGROUND_COLOR, 0xffaa5544);

If you want to change the font color, add the following line in your app's "colors.xml" file to override the default font color in the SDK:

<color name="dsTextColor" tools:override="true">#000000</color>

2. Images for Header buttons:

The top buttons for applying or cancelling an operation can be customized to have different icons. All you need to do is to pass in the drawable ids you would like to use.

dsPhotoEditorIntent.putExtra(DsPhotoEditorConstants.DS_TOP_BUTTON_APPLY_DRAWABLE, R.drawable.custom_top_bar_apply); dsPhotoEditorIntent.putExtra(DsPhotoEditorConstants.DS_TOP_BUTTON_CANCEL_DRAWABLE, R.drawable.custom_top_bar_cancel);

Please make sure the images have proper sizes & colors to fit into the user interface. We provide some dimensions for the top button images as below.

For higher density resolution screen, such as "drawable-xxxdhpi" and "drawable-sw720dp-xhdpi", we recommend an icon with size 220x220 and 50px padding. For densities like "drawable-xxhdpi" and "drawable-sw600dp-xhdpi", we recommend an icon with 160x160 and ~38px padding.

3. Images for Footer buttons:

The bottom image editing tool buttons can also be customized:

dsPhotoEditorIntent.putExtra(DsPhotoEditorConstants.DS_TOOL_FILTER_DRAWABLE, R.drawable.dark_filter);
dsPhotoEditorIntent.putExtra(DsPhotoEditorConstants.DS_TOOL_FRAME_DRAWABLE, R.drawable.dark_frame);
dsPhotoEditorIntent.putExtra(DsPhotoEditorConstants.DS_TOOL_ROUND_DRAWABLE, R.drawable.dark_round);
dsPhotoEditorIntent.putExtra(DsPhotoEditorConstants.DS_TOOL_EXPOSURE_DRAWABLE, R.drawable.dark_exposure);
dsPhotoEditorIntent.putExtra(DsPhotoEditorConstants.DS_TOOL_CONTRAST_DRAWABLE, R.drawable.dark_contrast);
dsPhotoEditorIntent.putExtra(DsPhotoEditorConstants.DS_TOOL_VIGNETTE_DRAWABLE, R.drawable.dark_vignette);
dsPhotoEditorIntent.putExtra(DsPhotoEditorConstants.DS_TOOL_CROP_DRAWABLE, R.drawable.dark_crop);
dsPhotoEditorIntent.putExtra(DsPhotoEditorConstants.DS_TOOL_ORIENTATION_DRAWABLE, R.drawable.dark_orientation);
dsPhotoEditorIntent.putExtra(DsPhotoEditorConstants.DS_TOOL_SATURATION_DRAWABLE, R.drawable.dark_saturation);
dsPhotoEditorIntent.putExtra(DsPhotoEditorConstants.DS_TOOL_SHARPNESS_DRAWABLE, R.drawable.dark_sharpness);
dsPhotoEditorIntent.putExtra(DsPhotoEditorConstants.DS_TOOL_WARMTH_DRAWABLE, R.drawable.dark_warmth);
dsPhotoEditorIntent.putExtra(DsPhotoEditorConstants.DS_TOOL_PIXELATE_DRAWABLE, R.drawable.dark_pixelate);
dsPhotoEditorIntent.putExtra(DsPhotoEditorConstants.DS_TOOL_DRAW_DRAWABLE, R.drawable.dark_draw);
dsPhotoEditorIntent.putExtra(DsPhotoEditorConstants.DS_TOOL_STICKER_DRAWABLE, R.drawable.dark_sticker);
dsPhotoEditorIntent.putExtra(DsPhotoEditorConstants.DS_TOOL_TEXT_DRAWABLE, R.drawable.dark_text);

Buttons on Orientation page, such as left/right rotate and horizontal/vertical flip, can be customized as below:

dsPhotoEditorIntent.putExtra(DsPhotoEditorConstants.DS_ORIENTATION_LEFT_DRAWABLE, R.drawable.orientation_dark_rotate_left);
dsPhotoEditorIntent.putExtra(DsPhotoEditorConstants.DS_ORIENTATION_RIGHT_DRAWABLE, R.drawable.orientation_dark_rotate_right);
dsPhotoEditorIntent.putExtra(DsPhotoEditorConstants.DS_ORIENTATION_HORIZONTAL_DRAWABLE, R.drawable.orientation_dark_flip_horizontal);
dsPhotoEditorIntent.putExtra(DsPhotoEditorConstants.DS_ORIENTATION_VERTICAL_DRAWABLE, R.drawable.orientation_dark_flip_vertical);

For higher density resolution screen, such as "drawable-xxxdhpi" and "drawable-sw720dp-xhdpi", we recommend an icon with size 220x220 and 30px padding for footer buttons. For densities like "drawable-xxhdpi" and "drawable-sw600dp-xhdpi", we recommend an icon with 160x160 and 20px padding.

4. Custom Stickers:

You can use your own stickers to replace our built-in sticker images. This will remove all of our built-in stickers, and display your stickers instead.

You can simply pass in an array of drawable ids into the SDK in order to use your own stickers as below:

int[] customStickers = {

    R.drawable.custom_sticker_1, R.drawable.custom_sticker_2, R.drawable.custom_sticker_3,

    R.drawable.custom_sticker_4, R.drawable.custom_sticker_5, R.drawable.custom_sticker_6,

    R.drawable.custom_sticker_7, R.drawable.custom_sticker_8, R.drawable.custom_sticker_9,

    R.drawable.custom_sticker_10, R.drawable.custom_sticker_11, R.drawable.custom_sticker_12


dsPhotoEditorIntent.putExtra(DsPhotoEditorConstants.DS_CUSTOM_STICKERS, customStickers);

NOTES: please make sure to put all your sticker images into the "drawable-nodpi" folder in your Android project, otherwise the images may get scaled when they are loaded on devices with different screen resolution.


Please avoid using big images or adding too many stickers, which may use up limited memory on older devices or slow down your app performance. The built-in stickers used in our SDK are around 640px by 640px.

5. Monetize with banner ad or small native ad:

You can monetize your app by adding an ad view into our SDK user interface. The banner ad will be displayed near the bottom of the screen, and you are responsible for constructing the ad view and following the ad network's implementation guide & policy. You can choose the ad network you would like to integrate, such as AdMob or Amazon Mobile Ads.

Assume your banner or native ad view is defined as "adView" in your java code, you can display it by passing the ad view into our SDK as below:

dsPhotoEditorIntent.putExtra(DsPhotoEditorConstants.DS_CUSTOM_VIEW, true); DsPhotoEditorActivity.dsCustomView = adView;

DS Photo Editor SDK - iOS & Android

Terms Of Service

Privacy Policy