From 5235a6b3a491982acab2b01a2a487ec1a5e39ecb Mon Sep 17 00:00:00 2001 From: oupson Date: Fri, 17 May 2019 18:17:47 +0200 Subject: [PATCH] Backup before switching to androidx --- .idea/caches/build_file_checksums.ser | Bin 596 -> 596 bytes .idea/codeStyles/Project.xml | 29 --- .idea/encodings.xml | 4 + apng_library/build.gradle | 12 +- .../main/java/oupson/apng/APNGDisassembler.kt | 4 +- .../src/main/java/oupson/apng/Apng.kt | 69 +----- app-test/build.gradle | 5 +- .../apngcreator/ExampleInstrumentedTest.kt | 4 +- .../oupson/apngcreator/CreatorActivity.kt | 62 +++-- .../java/oupson/apngcreator/Main2Activity.kt | 24 +- .../java/oupson/apngcreator/MainActivity.kt | 212 +++++++++++++----- ...d_white_24dp.xml => ic_add_black_24dp.xml} | 4 +- ..._24dp.xml => ic_play_arrow_black_24dp.xml} | 2 +- .../src/main/res/layout/activity_main.xml | 68 ------ .../src/main/res/layout/activity_main2.xml | 24 -- app-test/src/main/res/values/styles.xml | 28 ++- .../oupson/apngcreator/ExampleUnitTest.kt | 3 +- build.gradle | 4 +- gradle.properties | 2 +- gradle/wrapper/gradle-wrapper.properties | 4 +- 20 files changed, 284 insertions(+), 280 deletions(-) delete mode 100644 .idea/codeStyles/Project.xml create mode 100644 .idea/encodings.xml rename app-test/src/main/res/drawable/{ic_add_white_24dp.xml => ic_add_black_24dp.xml} (51%) rename app-test/src/main/res/drawable/{ic_play_arrow_white_24dp.xml => ic_play_arrow_black_24dp.xml} (88%) delete mode 100644 app-test/src/main/res/layout/activity_main.xml delete mode 100644 app-test/src/main/res/layout/activity_main2.xml diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index 8d68dffa53a17e762febe5d6d35b8a1333c6406d..31c05ff34e9d57e4117e3f90d2302aa7a79b8075 100644 GIT binary patch delta 121 zcmV-<0EYk61k?nOmj!CZkvQ^^oSzW);i4iOdK<-jR}ek8F^Of9O93Vjd*P2I{y>wx zw*e$3jA`F;lYs%0KMd4LqOp25wd-ThQFcy{baVg_XL4a=Y-KKRa&K^Da&&2Bb9He5 begFml000mmAQ7CYv2tVi+R?m{R`-H - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..15a15b2 --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/apng_library/build.gradle b/apng_library/build.gradle index 8060cfd..f8bfbf2 100644 --- a/apng_library/build.gradle +++ b/apng_library/build.gradle @@ -1,11 +1,12 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' +apply plugin: 'kotlin-android-extensions' android { - compileSdkVersion 27 + compileSdkVersion 28 defaultConfig { minSdkVersion 21 - targetSdkVersion 27 + targetSdkVersion 28 versionCode 1 versionName "1.0.9" @@ -22,16 +23,15 @@ android { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } - productFlavors { - } } dependencies { - implementation 'com.android.support:appcompat-v7:27.1.1' + implementation 'com.android.support:appcompat-v7:28.0.0' + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" + implementation "org.jetbrains.anko:anko:$anko_version" } diff --git a/apng_library/src/main/java/oupson/apng/APNGDisassembler.kt b/apng_library/src/main/java/oupson/apng/APNGDisassembler.kt index bfffd30..35f70ecf 100644 --- a/apng_library/src/main/java/oupson/apng/APNGDisassembler.kt +++ b/apng_library/src/main/java/oupson/apng/APNGDisassembler.kt @@ -111,8 +111,8 @@ class APNGDisassembler { throw BadApng("`y_offset` + `height` must be <= `IHDR` height") } - png!!.addAll(pngSignature.toList()) - png!!.addAll(generateIhdr(ihdr, width, height).toList()) + png?.addAll(pngSignature.toList()) + png?.addAll(generateIhdr(ihdr, width, height).toList()) plte?.let { png!!.addAll(it.toList()) } diff --git a/apng_library/src/main/java/oupson/apng/Apng.kt b/apng_library/src/main/java/oupson/apng/Apng.kt index 179d86e..a5b61cb 100644 --- a/apng_library/src/main/java/oupson/apng/Apng.kt +++ b/apng_library/src/main/java/oupson/apng/Apng.kt @@ -147,8 +147,8 @@ class Apng { res.addAll(generateACTL()) // Get max height and max width - val maxHeight = frames.sortedByDescending { it.height }[0].height - val maxWitdh = frames.sortedByDescending { it.width }[0].width + maxHeight = frames.sortedByDescending { it.height }[0].height + maxWidth = frames.sortedByDescending { it.width }[0].width if (cover == null) { val framesByte = ArrayList() @@ -171,24 +171,8 @@ class Apng { fcTL.addAll(to4Bytes(frames[0].width).toList()) fcTL.addAll(to4Bytes(frames[0].height).toList()) - // Calculate offset - if (frames[0].x_offsets == null) { - if (frames[0].width < maxWitdh) { - val xOffset = (maxWitdh / 2) - (frames[0].width / 2) - fcTL.addAll(to4Bytes(xOffset).toList()) - } else { - fcTL.addAll(to4Bytes(0).toList()) - } - if (frames[0].height < maxHeight) { - val xOffset = (maxHeight / 2) - (frames[0].height / 2) - fcTL.addAll(to4Bytes(xOffset).toList()) - } else { - fcTL.addAll(to4Bytes(0).toList()) - } - } else { - fcTL.addAll(to4Bytes(frames[0].x_offsets).toList()) - fcTL.addAll(to4Bytes(frames[0].y_offsets).toList()) - } + fcTL.addAll(to4Bytes(frames[0].x_offsets).toList()) + fcTL.addAll(to4Bytes(frames[0].y_offsets).toList()) // Set frame delay fcTL.addAll(to2Bytes(frames[0].delay.toInt()).toList()) @@ -255,24 +239,9 @@ class Apng { fcTL.addAll(to4Bytes(frames[0].width).toList()) fcTL.addAll(to4Bytes(frames[0].height).toList()) - // Calculate offset - if (frames[0].x_offsets == null) { - if (frames[0].width < maxWitdh) { - val xOffset = (maxWitdh / 2) - (frames[0].width / 2) - fcTL.addAll(to4Bytes(xOffset).toList()) - } else { - fcTL.addAll(to4Bytes(0).toList()) - } - if (frames[0].height < maxHeight) { - val xOffset = (maxHeight / 2) - (frames[0].height / 2) - fcTL.addAll(to4Bytes(xOffset).toList()) - } else { - fcTL.addAll(to4Bytes(0).toList()) - } - } else { - fcTL.addAll(to4Bytes(frames[0].x_offsets!!).toList()) - fcTL.addAll(to4Bytes(frames[0].y_offsets!!).toList()) - } + + fcTL.addAll(to4Bytes(frames[0].x_offsets).toList()) + fcTL.addAll(to4Bytes(frames[0].y_offsets).toList()) // Set frame delay fcTL.addAll(to2Bytes(frames[0].delay.toInt()).toList()) @@ -326,23 +295,8 @@ class Apng { fcTL.addAll(to4Bytes(frames[i].width).toList()) fcTL.addAll(to4Bytes(frames[i].height).toList()) - if (frames[i].x_offsets == null) { - if (frames[i].width < maxWitdh) { - val xOffset = (maxWitdh / 2) - (frames[i].width / 2) - fcTL.addAll(to4Bytes(xOffset).toList()) - } else { - fcTL.addAll(to4Bytes(0).toList()) - } - if (frames[i].height < maxHeight) { - val xOffset = (maxHeight / 2) - (frames[i].height / 2) - fcTL.addAll(to4Bytes(xOffset).toList()) - } else { - fcTL.addAll(to4Bytes(0).toList()) - } - } else { - fcTL.addAll(to4Bytes(frames[i].x_offsets!!).toList()) - fcTL.addAll(to4Bytes(frames[i].y_offsets!!).toList()) - } + fcTL.addAll(to4Bytes(frames[i].x_offsets).toList()) + fcTL.addAll(to4Bytes(frames[i].y_offsets).toList()) // Set frame delay fcTL.addAll(to2Bytes(frames[i].delay.toInt()).toList()) @@ -504,9 +458,9 @@ class Apng { val pnn = PnnQuantizer(btm) val btmOptimised = pnn.convert(maxColor, false) if (sizePercent != null) { - apng.addFrames(btmOptimised, it.delay, ((it.x_offsets ?: 0).toFloat() * sizePercent.toFloat() / 100f).toInt(), ((it.y_offsets ?: 0).toFloat() * sizePercent.toFloat() / 100f).toInt(), it.dispose_op, it.blend_op) + apng.addFrames(btmOptimised, it.delay, (it.x_offsets.toFloat() * sizePercent.toFloat() / 100f).toInt(), (it.y_offsets.toFloat() * sizePercent.toFloat() / 100f).toInt(), it.dispose_op, it.blend_op) } else { - apng.addFrames(btmOptimised, it.delay, it.x_offsets ?: 0, it.y_offsets ?: 0, it.dispose_op, it.blend_op) + apng.addFrames(btmOptimised, it.delay, it.x_offsets, it.y_offsets, it.dispose_op, it.blend_op) } } frames = apng.frames @@ -520,6 +474,7 @@ class Apng { it.maxHeight = maxHeight } val drawedFrame = ApngAnimator(null).draw(frames) + File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS), "frame0.png").writeBytes(PngEncoder.encode(drawedFrame[0])) for (i in 1 until frames.size) { val diffCalculator = BitmapDiffCalculator(drawedFrame[i - 1], drawedFrame[i]) File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS), "frame$i.png").writeBytes(PngEncoder.encode(diffCalculator.res, true)) diff --git a/app-test/build.gradle b/app-test/build.gradle index 6f75aa5..c51d110 100644 --- a/app-test/build.gradle +++ b/app-test/build.gradle @@ -5,11 +5,11 @@ apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' android { - compileSdkVersion 27 + compileSdkVersion 28 defaultConfig { applicationId "oupson.apngcreator" minSdkVersion 24 - targetSdkVersion 26 + targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" @@ -48,6 +48,7 @@ dependencies { implementation 'com.android.support:design:27.1.1' // where X.X.X version implementation "org.jetbrains.anko:anko-appcompat-v7:$anko_version" implementation "org.jetbrains.anko:anko-design:$anko_version" + implementation "org.jetbrains.anko:anko-constraint-layout:$anko_version" } kotlin { experimental { diff --git a/app-test/src/androidTest/java/oupson/apngcreator/ExampleInstrumentedTest.kt b/app-test/src/androidTest/java/oupson/apngcreator/ExampleInstrumentedTest.kt index 3991700..2d70ec6 100644 --- a/app-test/src/androidTest/java/oupson/apngcreator/ExampleInstrumentedTest.kt +++ b/app-test/src/androidTest/java/oupson/apngcreator/ExampleInstrumentedTest.kt @@ -2,12 +2,10 @@ package oupson.apngcreator import android.support.test.InstrumentationRegistry import android.support.test.runner.AndroidJUnit4 - +import org.junit.Assert.assertEquals import org.junit.Test import org.junit.runner.RunWith -import org.junit.Assert.* - /** * Instrumented test, which will execute on an Android device. * diff --git a/app-test/src/main/java/oupson/apngcreator/CreatorActivity.kt b/app-test/src/main/java/oupson/apngcreator/CreatorActivity.kt index a601be4..73c441c 100644 --- a/app-test/src/main/java/oupson/apngcreator/CreatorActivity.kt +++ b/app-test/src/main/java/oupson/apngcreator/CreatorActivity.kt @@ -2,14 +2,19 @@ package oupson.apngcreator import android.app.Activity import android.content.Intent +import android.content.res.ColorStateList import android.graphics.Bitmap import android.graphics.BitmapFactory +import android.graphics.Color import android.os.Bundle import android.os.Environment import android.support.design.widget.FloatingActionButton import android.support.v7.app.AppCompatActivity +import android.text.Html +import android.view.View import android.widget.ListView import org.jetbrains.anko.* +import org.jetbrains.anko.design.appBarLayout import org.jetbrains.anko.design.floatingActionButton import org.jetbrains.anko.sdk27.coroutines.onClick import oupson.apng.Apng @@ -22,6 +27,7 @@ class CreatorActivity : AppCompatActivity() { var bitmapAdapter : AnkoAdapter? = null val PICK_IMAGE = 999 var view = CreatorActivityLayout() + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) view.setContentView(this) @@ -38,7 +44,7 @@ class CreatorActivity : AppCompatActivity() { startActivityForResult(chooserIntent, PICK_IMAGE) } view.createButton.onClick { - var apngCreated = Apng() + val apngCreated = Apng() items.forEach { bitmap -> apngCreated.addFrames(bitmap) @@ -54,23 +60,16 @@ class CreatorActivity : AppCompatActivity() { a.load(apngCreated.toByteArray()) a.onLoaded { anim -> alert { - customView { - imageView { - /**anim.anim?.let {cu -> - for (i in 0 until cu.numberOfFrames) { - val vt = Bitmap.createBitmap(cu.getFrame(i).intrinsicWidth, cu.getFrame(i).intrinsicHeight, Bitmap.Config.ARGB_8888) - val canvas = Canvas(vt) - cu.getFrame(i).draw(canvas) - File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS), "frameCreated$i.png").writeBytes(PngEncoder.encode(vt)) - } - } - */ - this.setImageDrawable(anim.anim) - } + customView { + ctx.setTheme(R.style.AppTheme_DarkDialog) + imageView { + this.setImageDrawable(anim.anim) } - }.show() - } + + } + }.show() } + } bitmapAdapter = AnkoAdapter({items}) {index, items, view -> with(items[index]) { verticalLayout { @@ -112,13 +111,39 @@ class CreatorActivityLayout : AnkoComponent { override fun createView(ui: AnkoContext) = with(ui) { relativeLayout { + backgroundColor = Color.BLACK + var bar = verticalLayout { + id = View.generateViewId() + backgroundColor = Color.DKGRAY + appBarLayout { + backgroundColor = Color.BLACK + toolbar { + id = View.generateViewId() + title = Html.fromHtml("Create APNG") + }.lparams { + width = matchParent + height = wrapContent + } + }.lparams { + width = matchParent + height = wrapContent + bottomMargin = 1 + } + }.lparams { + width = matchParent + height = wrapContent + } + listView = listView { + id = View.generateViewId() }.lparams { width = matchParent height = matchParent + below(bar) } addFrameButton = floatingActionButton { - imageResource = R.drawable.ic_add_white_24dp + imageResource = R.drawable.ic_add_black_24dp + backgroundTintList = ColorStateList.valueOf(Color.WHITE) isClickable = true }.lparams { width = wrapContent @@ -128,7 +153,8 @@ class CreatorActivityLayout : AnkoComponent { alignParentEnd() } createButton = floatingActionButton { - imageResource = R.drawable.ic_play_arrow_white_24dp + imageResource = R.drawable.ic_play_arrow_black_24dp + backgroundTintList = ColorStateList.valueOf(Color.WHITE) isClickable = true }.lparams { width = wrapContent diff --git a/app-test/src/main/java/oupson/apngcreator/Main2Activity.kt b/app-test/src/main/java/oupson/apngcreator/Main2Activity.kt index 4a09bca..a00d3c8 100644 --- a/app-test/src/main/java/oupson/apngcreator/Main2Activity.kt +++ b/app-test/src/main/java/oupson/apngcreator/Main2Activity.kt @@ -2,21 +2,35 @@ package oupson.apngcreator import android.Manifest import android.content.pm.PackageManager +import android.graphics.Color import android.os.Bundle import android.support.v4.app.ActivityCompat import android.support.v4.content.ContextCompat import android.support.v7.app.AppCompatActivity import android.view.View -import kotlinx.android.synthetic.main.activity_main2.* +import android.widget.ImageView +import org.jetbrains.anko.backgroundColor +import org.jetbrains.anko.imageView +import org.jetbrains.anko.matchParent import org.jetbrains.anko.sdk27.coroutines.onClick +import org.jetbrains.anko.verticalLayout import oupson.apng.ApngAnimator class Main2Activity : AppCompatActivity() { - + lateinit var imageView : ImageView override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContentView(R.layout.activity_main2) + + verticalLayout { + imageView = imageView { + + }.lparams { + width = matchParent + height = matchParent + } + backgroundColor = Color.parseColor("#323232") + } window.decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_LAYOUT_STABLE or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN @@ -38,10 +52,10 @@ class Main2Activity : AppCompatActivity() { } fun load() { - val animator = ApngAnimator(applicationContext).loadInto(imageView3) + val animator = ApngAnimator(applicationContext).loadInto(imageView) val uri = intent.data animator.load(uri, null) - imageView3.onClick { + imageView.onClick { try { if (animator.isPlaying) { animator.pause() diff --git a/app-test/src/main/java/oupson/apngcreator/MainActivity.kt b/app-test/src/main/java/oupson/apngcreator/MainActivity.kt index 05cecba..3806231 100644 --- a/app-test/src/main/java/oupson/apngcreator/MainActivity.kt +++ b/app-test/src/main/java/oupson/apngcreator/MainActivity.kt @@ -1,75 +1,181 @@ package oupson.apngcreator -import android.content.Intent +import android.graphics.Color +import android.graphics.drawable.GradientDrawable import android.os.Bundle +import android.support.constraint.ConstraintLayout import android.support.v7.app.AppCompatActivity +import android.text.Html import android.util.Log -import android.view.Menu -import android.view.MenuItem -import android.widget.SeekBar +import android.view.View +import android.widget.Toolbar import com.squareup.picasso.Picasso -import kotlinx.android.synthetic.main.activity_main.* +import org.jetbrains.anko.* +import org.jetbrains.anko.constraint.layout.ConstraintSetBuilder +import org.jetbrains.anko.constraint.layout.applyConstraintSet +import org.jetbrains.anko.constraint.layout.constraintLayout +import org.jetbrains.anko.constraint.layout.matchConstraint +import org.jetbrains.anko.design.appBarLayout +import org.jetbrains.anko.sdk27.coroutines.onClick +import org.jetbrains.anko.sdk27.coroutines.onMenuItemClick +import org.jetbrains.anko.sdk27.coroutines.onSeekBarChangeListener import oupson.apng.ApngAnimator class MainActivity : AppCompatActivity() { - lateinit var animator: ApngAnimator + + + lateinit var animator: ApngAnimator + lateinit var tool : Toolbar // val imageUrl = "http://oupson.oupsman.fr/apng/bigApng.png" // val imageUrl = "https://metagif.files.wordpress.com/2015/01/bugbuckbunny.png" val imageUrl = "http://orig06.deviantart.net/7812/f/2012/233/7/5/twilight_rapidash_shaded_and_animated_by_tamalesyatole-d5bz7hd.png" // val imageUrl = "https://raw.githubusercontent.com/tinify/iMessage-Panda-sticker/master/StickerPackExtension/Stickers.xcstickers/Sticker%20Pack.stickerpack/panda.sticker/panda.png" override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContentView(R.layout.activity_main) - animator = ApngAnimator(this).loadInto(imageView).apply { - load(imageUrl) - onLoaded { - setOnAnimationLoopListener { - // Log.e("app-test", "onLoop") + val buttonDrawable = GradientDrawable().apply { + shape = GradientDrawable.RECTANGLE + cornerRadius = dip(5).toFloat() + setStroke(2, Color.WHITE) + } + verticalLayout { + backgroundColor = Color.BLACK + verticalLayout { + backgroundColor = Color.DKGRAY + appBarLayout { + backgroundColor = Color.BLACK + tool = toolbar { + id = View.generateViewId() + title = Html.fromHtml("MainActivity") + inflateMenu(R.menu.main_menu) + onMenuItemClick { item -> + Log.e("lll", "Click") + when (item!!.itemId) { + R.id.action_open_create_activity -> { + Log.e("lll", "Click") + startActivity() + finish() + true + } + else -> false + } + } + }.lparams { + width = matchParent + height = wrapContent + } + }.lparams { + width = matchParent + height = wrapContent + bottomMargin = 1 } + }.lparams { + width = matchParent + height = wrapContent } + + + constraintLayout { + val pauseButton = button("pause") { + id = View.generateViewId() + background = buttonDrawable + onClick { + animator.pause() + } + }.lparams( + width = wrapContent, + height = wrapContent + ) + val playButton = button("play") { + background = buttonDrawable + id = View.generateViewId() + onClick { + animator.play() + } + }.lparams( + width = wrapContent, + height = wrapContent + ) + val seekBar = themedSeekBar(R.style.AppTheme_SeekBar){ + id = View.generateViewId() + max = 200 + progress = 10 + onSeekBarChangeListener { + onProgressChanged { seekBar, progressValue, fromUser -> } + onStartTrackingTouch { seekBar -> } + onStopTrackingTouch { seekBar -> + Log.e("TAG", (seekBar!!.progress.toFloat() / 100f).toString()) + animator.speed = (seekBar!!.progress.toFloat() / 100f) + } + } + }.lparams( + width = matchConstraint, + height = wrapContent + ) + val imageView2 = imageView { + id = View.generateViewId() + Picasso.get().load(imageUrl).into(this) + }.lparams( + width = matchConstraint, + height = matchConstraint + ) + val imageView = imageView { + id = View.generateViewId() + animator = ApngAnimator(this@MainActivity).loadInto(this).apply { + load(imageUrl) + onLoaded { + setOnAnimationLoopListener { + // Log.e("app-test", "onLoop") + } + } + } + }.lparams( + width = matchConstraint, + height = matchConstraint + ) + applyConstraintSet { + pauseButton { + connect( + ConstraintSetBuilder.Side.BOTTOM to ConstraintSetBuilder.Side.TOP of seekBar margin dip(8), + ConstraintSetBuilder.Side.END to ConstraintSetBuilder.Side.END of ConstraintLayout.LayoutParams.PARENT_ID margin dip(8) + ) + } + playButton { + connect( + ConstraintSetBuilder.Side.BOTTOM to ConstraintSetBuilder.Side.TOP of seekBar margin dip(8), + ConstraintSetBuilder.Side.START to ConstraintSetBuilder.Side.START of ConstraintLayout.LayoutParams.PARENT_ID margin dip(8) + ) + } + seekBar { + connect( + ConstraintSetBuilder.Side.BOTTOM to ConstraintSetBuilder.Side.BOTTOM of ConstraintLayout.LayoutParams.PARENT_ID margin dip(8), + ConstraintSetBuilder.Side.END to ConstraintSetBuilder.Side.END of ConstraintLayout.LayoutParams.PARENT_ID margin dip(8), + ConstraintSetBuilder.Side.START to ConstraintSetBuilder.Side.START of ConstraintLayout.LayoutParams.PARENT_ID margin dip(8) + ) + } + imageView2 { + connect( + ConstraintSetBuilder.Side.BOTTOM to ConstraintSetBuilder.Side.TOP of playButton margin dip(8), + ConstraintSetBuilder.Side.END to ConstraintSetBuilder.Side.END of ConstraintLayout.LayoutParams.PARENT_ID margin dip(8), + ConstraintSetBuilder.Side.START to ConstraintSetBuilder.Side.START of ConstraintLayout.LayoutParams.PARENT_ID margin dip(8), + ConstraintSetBuilder.Side.TOP to ConstraintSetBuilder.Side.BOTTOM of imageView + ) + } + imageView { + connect( + ConstraintSetBuilder.Side.BOTTOM to ConstraintSetBuilder.Side.TOP of imageView2 margin dip(8), + ConstraintSetBuilder.Side.END to ConstraintSetBuilder.Side.END of ConstraintLayout.LayoutParams.PARENT_ID margin dip(8), + ConstraintSetBuilder.Side.START to ConstraintSetBuilder.Side.START of ConstraintLayout.LayoutParams.PARENT_ID margin dip(8), + ConstraintSetBuilder.Side.TOP to ConstraintSetBuilder.Side.TOP of ConstraintLayout.LayoutParams.PARENT_ID margin dip(8) + ) + } + } + }.lparams { + width = matchParent + height = matchParent + } + } - - this.seekBar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener { - - override fun onProgressChanged(seekBar: SeekBar, progressValue: Int, fromUser: Boolean) { - } - - override fun onStartTrackingTouch(seekBar: SeekBar) { - } - - override fun onStopTrackingTouch(seekBar: SeekBar) { - Log.e("TAG" , (seekBar.progress.toFloat() / 100f).toString()) - animator.speed = (seekBar.progress.toFloat() / 100f) - - } - }) - - Picasso.get().load(imageUrl).into(imageView2) - - play.setOnClickListener { - animator.play() - } - - pause.setOnClickListener { - animator.pause() - } - } - - override fun onCreateOptionsMenu(menu: Menu?): Boolean { - menuInflater.inflate(R.menu.main_menu, menu) - return super.onCreateOptionsMenu(menu) - } - - override fun onOptionsItemSelected(item: MenuItem?): Boolean { - when(item?.itemId) { - R.id.action_open_create_activity -> { - val intent = Intent(this, CreatorActivity::class.java) - startActivity(intent) - finish() - } - } - return super.onOptionsItemSelected(item) } } diff --git a/app-test/src/main/res/drawable/ic_add_white_24dp.xml b/app-test/src/main/res/drawable/ic_add_black_24dp.xml similarity index 51% rename from app-test/src/main/res/drawable/ic_add_white_24dp.xml rename to app-test/src/main/res/drawable/ic_add_black_24dp.xml index e3979cd..9f27772 100644 --- a/app-test/src/main/res/drawable/ic_add_white_24dp.xml +++ b/app-test/src/main/res/drawable/ic_add_black_24dp.xml @@ -1,5 +1,5 @@ - - + diff --git a/app-test/src/main/res/drawable/ic_play_arrow_white_24dp.xml b/app-test/src/main/res/drawable/ic_play_arrow_black_24dp.xml similarity index 88% rename from app-test/src/main/res/drawable/ic_play_arrow_white_24dp.xml rename to app-test/src/main/res/drawable/ic_play_arrow_black_24dp.xml index 1f75805..1a1c9f2 100644 --- a/app-test/src/main/res/drawable/ic_play_arrow_white_24dp.xml +++ b/app-test/src/main/res/drawable/ic_play_arrow_black_24dp.xml @@ -4,6 +4,6 @@ android:viewportWidth="24.0" android:viewportHeight="24.0"> diff --git a/app-test/src/main/res/layout/activity_main.xml b/app-test/src/main/res/layout/activity_main.xml deleted file mode 100644 index da92bb7..0000000 --- a/app-test/src/main/res/layout/activity_main.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - -