android / views-widgets-samples

Multiple samples showing the best practices in views-widgets on Android.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Can I add a solid line, like show path works in MotionLayout?

muhammad-hamza-shahid opened this issue · comments

I want to show a transition line on which my view is moving I have given this tag
app:motionDebug="SHOW_PATH"
but I want to show a solid line instead of line with dashes with keyframes.

That is meant as a debugging feature and should not be used in product.
You can get the paths from the MotionController if you implement a MotionHelper

public class MotionEffect extends MotionHelper {

....
 @Override
    public void onPreSetup(MotionLayout motionLayout, HashMap<View, MotionController> controllerMap) {
    

@jafu888 Thank's for your response, Can you please elaborate your solution or if possible can you give me any link to specific documentation as I have searched a lot but didn't found anything useful.

This is not documented. You are the first person looking to do something like this.

The idea is you would create subclass motionHelper (say PathDraw) add it to the MotionLayout (Like it was a view) but match parent width and height. Now anything you draw (in code) there would show.

Research Creating a CustomView for tips on drawing.

All the code for MotionEffect, MotionHelper, and MotionLayout can be found here: https://github.com/androidx/constraintlayout

@jafu888 this is not the ideal solution because it need a lot of calculation of x,y coordinates and it may not work perfectly on different screen sizes.