球形动画与文本在Android应用程序中使用标签云[新闻共和国]

球形动画与文本在Android应用程序中使用标签云[新闻共和国],第1张

概述我想在我的Android应用程序中创建类似于this的球形动画NewsRepublicapp.我到目前为止尝试创建一个sphere但是任何人都可以指导我如何在android中开发这样的动画.我们是否必须仅使用opengl,或者我们可以使用其他替代选项来实现它.此外,单击文本时,它会在不同的屏幕中打开相关

我想在我的Android应用程序中创建类似于this的球形动画
News Republic app.

我到目前为止尝试创建一个sphere但是任何人都可以指导我如何在androID中开发这样的动画.

我们是否必须仅使用opengl,或者我们可以使用其他替代选项来实现它.

此外,单击文本时,它会在不同的屏幕中打开相关新闻.

EDIT

我终于找到了一些解决方案,可以在package下找到.

但是,动画不够流畅.

Let me kNow if anyone can help me in the smoothing of the animations?

@R_403_6120@:

你不需要OpenGL.您可以使用简单的视图和Canvas来实现.我为你写了一些代码.您只需将其复制到项目中,添加到xml并运行:

import androID.content.Context;import androID.graphics.Canvas;import androID.graphics.color;import androID.graphics.Paint;import androID.util.AttributeSet;import androID.vIEw.MotionEvent;import androID.vIEw.VIEw;public class TagCloudVIEw extends VIEw {    String[] Tags = new String[]{"Lemon","Orange","StrawBerry","Plum","Pear","Pineapple","BlackBerry","Watermelon"};    Paint paint = new Paint(Paint.ANTI_AliAS_FLAG);    private float scroll = 0;    private float prevY;    public TagCloudVIEw(Context context, AttributeSet attrs) {        super(context, attrs);    }    @OverrIDe    public voID draw(Canvas canvas) {        super.draw(canvas);        float r = getHeight() / 3;        paint.setcolor(color.BLACK);        paint.setTextAlign(Paint.Align.CENTER);        for (int i = 0; i < Tags.length; i++) {            float t = i + scroll / getHeight();            float y = (float) (r * Math.cos(Math.PI * 2 * t / Tags.length));    // parametric circle equation            float z = (float) (r * Math.sin(Math.PI * 2 * t / Tags.length));            paint.setTextSize((r + z) / r/2 * 40 + 20);     // magic values, change to something better            paint.setAlpha((int) ((r + z) / r/2 * 127 + 128));            canvas.drawText(Tags[i], getWIDth() / 2, getHeight() / 2 + y, paint);        }    }    @OverrIDe    public boolean ontouchEvent(MotionEvent event) {        if (event.getAction() != MotionEvent.ACTION_DOWN)            scroll -= event.getY() - prevY;     // only one plane        prevY = event.getY();        invalIDate();        return true;    }}

要实现您描述的结果,您必须使用Scroller添加平滑滚动,将圆方程更改为球形方程,调整参数并添加一些getter / setter.使用参数方程,您还可以找到用户触摸的文本.此视图如下所示:

总结

以上是内存溢出为你收集整理的球形动画与文本在Android应用程序中使用标签云[新闻共和国]全部内容,希望文章能够帮你解决球形动画与文本在Android应用程序中使用标签云[新闻共和国]所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1110896.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存