Official web site stickerface.io
Telegram channel @stickerface | Русский канал @stickerface_ru
Telegram chat for developer: @stickerface_android_sdk
implementation 'io.stickerface:sdk:1.1.1'
<provider
android:name="io.stickerface.sdk.StickerFaceInitializer"
android:authorities="${applicationId}.stickerface.provider"
android:exported="false" />
NOTE: Add you application in AndroidManifest.xml
and add android.permission.INTERNET
, android.permission.CAMERA
in permission
<activity
android:name="io.stickerface.sdk.StickerFaceActivity"
android:launchMode="singleTask"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:host="stickerface.io" android:scheme="http" />
<data android:host="stickerface.io" android:scheme="https" />
</intent-filter>
</activity>
private val stickerFaceResult = registerForActivityResult(StickerFaceForResult()) { layers ->
layers
}
launch Stickerface:
val params = StickerFaceParams.Builder()
.setLayers("0;1;11;13;23;28;68;69;72;83;91;119;125;159;160;187;219;238;253;265;310;337;3000;3220") // optional
.build()
// empty params without builder StickerFaceParams.empty()
stickerFaceResult.launch(params)
OR
val params = StickerFaceParams.Builder()
.setLayers("0;1;11;13;23;28;68;69;72;83;91;119;125;159;160;187;219;238;253;265;310;337;3000;3220") // optional
.build()
// empty params without builder StickerFaceParams.empty()
val intent = StickerFaceActivity.createIntent(context, params)
startActivityForResult(intent, STICKERFACE_RC)
parse result:
val layers = StickerFaceActivity.handleResult(intent)
<io.stickerface.sdk.widget.StickerFaceView
android:layout_width="50dp"
android:layout_height="50dp"
app:sfv_size="100"
app:sfv_color="#000000"
app:sfv_circle="true"
app:sfv_layers="0;1;11;13;23;28;68;69;72;83;91;119;125;159;160;187;219;238;253;265;310;337;3000;3220"
/>
Programmatically:
stickerFaceView.bgColor = Color.BLACK
stickerFaceView.size = 100
stickerFaceView.circle = true
stickerFaceView.setLayers(Layers("0;1;11;13;23;28;68;69;72;83;91;119;125;159;160;187;219;238;253;265;310;337;3000;3220")) {
// callback after sticker loaded (optional)
}
StickerFace.render(Layers("0;1;11;13;23;28;68;69;72;83;91;119;125;159;160;187;219;238;253;265;310;337;3000;3220")).into(imageView)
StickerFace.render(Layers("0;1;11;13;23;28;68;69;72;83;91;119;125;159;160;187;219;238;253;265;310;337;3000;3220")).into { bitmap ->
// your bitmap
}
suspend function for get bitmap:
val bitmap = Layers("0;1;11;13;23;28;68;69;72;83;91;119;125;159;160;187;219;238;253;265;310;337;3000;3220").bitmap()
val layers = Layers("0;1;11;13;23;28;68;69;72;83;91;119;125;159;160;187;219;238;253;265;310;337;3000;3220")
layers = layers.withoutBackground()
use layers.hasBackground()
if you want to know if has a background
if (layers.woman) {
log("its woman sticker")
}
use layers.toggleSex()
if you want change gender
layers = layers.asSticker(StickerType.Hi)
use layers.stickerType
for get current emotion. StickerType.None
means no emotion
val uri = layers.getUri(
size = 256 // optional
)
// uri = https://stickerface.io/api/png/0;1;11;13;23;28;68;69;72;83;91;119;125;159;160;187;219;238;253;265;310;337;3000;3220?size=256
Using with Fresco
1. Add dependency Fresco extension
implementation 'io.stickerface:fresco:0.0.1'
import io.stickerface.fresco.setLayers
...
simpleDraweeView.setLayers(layers)
Use suspend function for create ImageRequestBuilder:
import io.stickerface.fresco.createImageBuilder
...
layers.createImageBuilder()