看到飘落的雪花让我想起了飘落的字体
1.首先自定义一个view继承View
public class fallView extends View{ }
2.实现fallView中的方法:在方法中初始化屏幕宽度、画笔、要执行的时间
public fallView(Context context, AttributeSet attrs) { super(context, attrs); // 初始化 w = context.getResources().getDisplayMetrics().widthPixels; h = context.getResources().getDisplayMetrics().heightPixels; initPaint(); new Thread(runnable).start(); // 开启线程 }
3.添加绘画的布:
@Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); DrawLine(canvas,s, x, y, paint); }
private void DrawLine(Canvas canvas,String s, int[] x2, int[] y2, Paint paint2) { for(int i =0 ; i<NUM;i++){ canvas.drawText( s , x[i], y[i], paint); } }
4.存储数据并且对外展示接口set
//存储的数据 private String s ; public String getPollutant(){ return s; } public void setPollutant(String s){ this.s = s; }
5.在该调用的地方调用:xml布局
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#000000"> <fall.huihui.com.fallView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/fall"/> </RelativeLayout>
6.activity或者fragment中设置:
import android.support.v7.app.AppCompatActivity; import android.os.Bundle; public class MainActivity extends AppCompatActivity { private fallView fall; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); fall = (fallView) findViewById(R.id.fall); fall.setPollutant("安卓巴士"); } }
以上便完成了字体下落动画,效果图展示: