Search in sources :

Example 1 with DrawableImageGenerator

use of tk.zielony.randomdata.common.DrawableImageGenerator in project Carbon by ZieIony.

the class PathAnimationActivity method onCreate.

@SuppressLint("ClickableViewAccessibility")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    initToolbar();
    ImageView imageView = findViewById(R.id.image);
    imageView.setImageDrawable(new DrawableImageGenerator(this).next());
    LinearLayout card = findViewById(R.id.card);
    View layout = findViewById(R.id.layout);
    layout.setOnTouchListener((v, event) -> {
        if (event.getAction() == MotionEvent.ACTION_UP) {
            NURBS nurbs = new NURBS();
            nurbs.addPoint(new PointF(card.getX() + card.getWidth() / 2, card.getY() + card.getHeight() / 2));
            nurbs.addPoint(new PointF(event.getX(), card.getY() + card.getHeight() / 2));
            nurbs.addPoint(new PointF(event.getX(), event.getY()));
            nurbs.init();
            ValueAnimator animator = ValueAnimator.ofFloat(0, 1);
            float srcWidth = card.getWidth();
            float srcHeight = card.getHeight();
            float destWidth = expanded ? getResources().getDimension(R.dimen.carbon_contentSpace) : layout.getWidth();
            float destHeight = destWidth * 9.0f / 16;
            animator.setDuration(500);
            animator.setInterpolator(new FastOutSlowInInterpolator());
            animator.addUpdateListener(animation -> {
                PointF point = nurbs.getPoint((Float) animation.getAnimatedValue());
                int w = (int) MathUtils.lerp(srcWidth, destWidth, (Float) animation.getAnimatedValue());
                int h = (int) MathUtils.lerp(srcHeight, destHeight, (Float) animation.getAnimatedValue());
                int x = (int) point.x - w / 2;
                int y = (int) point.y - h / 2;
                card.setBounds(x, y, w, h);
            });
            animator.start();
            expanded = !expanded;
        }
        return true;
    });
}
Also used : DrawableImageGenerator(tk.zielony.randomdata.common.DrawableImageGenerator) PointF(android.graphics.PointF) FastOutSlowInInterpolator(androidx.interpolator.view.animation.FastOutSlowInInterpolator) ImageView(carbon.widget.ImageView) ValueAnimator(android.animation.ValueAnimator) View(android.view.View) ImageView(carbon.widget.ImageView) LinearLayout(carbon.widget.LinearLayout) SuppressLint(android.annotation.SuppressLint) NURBS(carbon.internal.NURBS) SuppressLint(android.annotation.SuppressLint)

Example 2 with DrawableImageGenerator

use of tk.zielony.randomdata.common.DrawableImageGenerator in project Carbon by ZieIony.

the class QuickReturnActivity method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    List<Serializable> items = Arrays.asList(// new PaddingItem(getResources().getDimensionPixelSize(R.dimen.carbon_toolbarHeight) + getResources().getDimensionPixelSize(R.dimen.carbon_paddingHalf)),
    new DefaultHeaderItem("Header"), new DefaultImageTextSubtextDateItem(), new DefaultImageTextSubtextDateItem(), new DefaultImageTextSubtextDateItem(), new DefaultImageTextSubtextDateItem(), new DefaultHeaderItem("Header"), new DefaultImageTextSubtextDateItem(), new DefaultImageTextSubtextDateItem(), new DefaultImageTextSubtextDateItem(), new DefaultImageTextSubtextDateItem(), new DefaultHeaderItem("Header"), new DefaultImageTextSubtextDateItem(), new DefaultImageTextSubtextDateItem(), new DefaultImageTextSubtextDateItem(), new DefaultImageTextSubtextDateItem(), new DefaultHeaderItem("Header"), new DefaultImageTextSubtextDateItem(), new DefaultImageTextSubtextDateItem(), new DefaultImageTextSubtextDateItem(), new DefaultImageTextSubtextDateItem());
    RandomData randomData = new RandomData();
    randomData.addGenerator(Drawable.class, new DrawableImageGenerator(this));
    randomData.addGenerator(String.class, new StringNameGenerator().withMatcher(f -> f.getName().equals("text") && f.getDeclaringClass().equals(DefaultImageTextSubtextDateItem.class)));
    randomData.addGenerator(String.class, new TextGenerator().withMatcher(f -> f.getName().equals("subtext")));
    randomData.addGenerator(String.class, new DateGenerator().withTransformer(new DateToStringTransformer()));
    randomData.fill(items);
    RecyclerView recycler = findViewById(R.id.recycler);
    recycler.setLayoutManager(new LinearLayoutManager(this));
    RowListAdapter<Serializable> adapter = new RowListAdapter<>(DefaultImageTextSubtextDateItem.class, ImageTextSubtextDateRow::new);
    adapter.putFactory(DefaultHeaderItem.class, PaddedHeaderRow::new);
    recycler.setAdapter(adapter);
    adapter.setItems(items);
    final FloatingActionButton fab = findViewById(R.id.fab);
    final Toolbar toolbar = findViewById(R.id.toolbar);
    toolbar.setTitle(getTitle());
    recycler.addOnScrollListener(new androidx.recyclerview.widget.RecyclerView.OnScrollListener() {

        int yScroll = 0;

        @Override
        public void onScrolled(androidx.recyclerview.widget.RecyclerView recyclerView, int dx, int dy) {
            super.onScrolled(recyclerView, dx, dy);
            if (fab.getVisibility() == View.VISIBLE && fab.getAnimator() == null && yScroll > 50 * Carbon.getDip(getApplicationContext())) {
                yScroll = 0;
                fab.animateVisibility(View.GONE);
                toolbar.animateVisibility(View.GONE);
            }
            if (fab.getVisibility() != View.VISIBLE && fab.getAnimator() == null && yScroll < -50 * Carbon.getDip(getApplicationContext())) {
                yScroll = 0;
                fab.animateVisibility(View.VISIBLE);
                toolbar.animateVisibility(View.VISIBLE);
            }
            if (Math.signum(dy) != Math.signum(yScroll))
                yScroll = 0;
            yScroll += dy;
        }
    });
}
Also used : DefaultHeaderItem(carbon.component.DefaultHeaderItem) Arrays(java.util.Arrays) Bundle(android.os.Bundle) DrawableImageGenerator(tk.zielony.randomdata.common.DrawableImageGenerator) TextGenerator(tk.zielony.randomdata.common.TextGenerator) Drawable(android.graphics.drawable.Drawable) StringNameGenerator(tk.zielony.randomdata.person.StringNameGenerator) PaddedHeaderRow(carbon.component.PaddedHeaderRow) DateToStringTransformer(tk.zielony.randomdata.transformer.DateToStringTransformer) RecyclerView(carbon.widget.RecyclerView) DateGenerator(tk.zielony.randomdata.common.DateGenerator) RandomData(tk.zielony.randomdata.RandomData) FloatingActionButton(carbon.widget.FloatingActionButton) View(android.view.View) RowListAdapter(carbon.recycler.RowListAdapter) DefaultImageTextSubtextDateItem(carbon.component.DefaultImageTextSubtextDateItem) ImageTextSubtextDateRow(carbon.component.ImageTextSubtextDateRow) ThemedActivity(tk.zielony.carbonsamples.ThemedActivity) SampleAnnotation(tk.zielony.carbonsamples.SampleAnnotation) Serializable(java.io.Serializable) List(java.util.List) DefaultHeaderItem(carbon.component.DefaultHeaderItem) Carbon(carbon.Carbon) Toolbar(carbon.widget.Toolbar) R(tk.zielony.carbonsamples.R) LinearLayoutManager(androidx.recyclerview.widget.LinearLayoutManager) Serializable(java.io.Serializable) RandomData(tk.zielony.randomdata.RandomData) DefaultImageTextSubtextDateItem(carbon.component.DefaultImageTextSubtextDateItem) LinearLayoutManager(androidx.recyclerview.widget.LinearLayoutManager) ImageTextSubtextDateRow(carbon.component.ImageTextSubtextDateRow) FloatingActionButton(carbon.widget.FloatingActionButton) TextGenerator(tk.zielony.randomdata.common.TextGenerator) DateToStringTransformer(tk.zielony.randomdata.transformer.DateToStringTransformer) Toolbar(carbon.widget.Toolbar) StringNameGenerator(tk.zielony.randomdata.person.StringNameGenerator) DateGenerator(tk.zielony.randomdata.common.DateGenerator) DrawableImageGenerator(tk.zielony.randomdata.common.DrawableImageGenerator) RowListAdapter(carbon.recycler.RowListAdapter) PaddedHeaderRow(carbon.component.PaddedHeaderRow) RecyclerView(carbon.widget.RecyclerView)

Aggregations

View (android.view.View)2 DrawableImageGenerator (tk.zielony.randomdata.common.DrawableImageGenerator)2 ValueAnimator (android.animation.ValueAnimator)1 SuppressLint (android.annotation.SuppressLint)1 PointF (android.graphics.PointF)1 Drawable (android.graphics.drawable.Drawable)1 Bundle (android.os.Bundle)1 FastOutSlowInInterpolator (androidx.interpolator.view.animation.FastOutSlowInInterpolator)1 LinearLayoutManager (androidx.recyclerview.widget.LinearLayoutManager)1 Carbon (carbon.Carbon)1 DefaultHeaderItem (carbon.component.DefaultHeaderItem)1 DefaultImageTextSubtextDateItem (carbon.component.DefaultImageTextSubtextDateItem)1 ImageTextSubtextDateRow (carbon.component.ImageTextSubtextDateRow)1 PaddedHeaderRow (carbon.component.PaddedHeaderRow)1 NURBS (carbon.internal.NURBS)1 RowListAdapter (carbon.recycler.RowListAdapter)1 FloatingActionButton (carbon.widget.FloatingActionButton)1 ImageView (carbon.widget.ImageView)1 LinearLayout (carbon.widget.LinearLayout)1 RecyclerView (carbon.widget.RecyclerView)1