Ant*_*427 13 android android-5.0-lollipop
所以,我正在尝试在TextView上创建API级别21的循环显示,但我一直收到此错误.起初我认为它与我尝试它的片段的生命周期有关,但后来我在一个活动中尝试了同样的事情,它仍然无法工作.
这是代码:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Window w = getWindow();
w.setFlags(
WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS,
WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
w.setStatusBarColor(Color.parseColor("#0277bd"));
setContentView(R.layout.activity_main);
TextView tv = (TextView) findViewById(R.id.text);
int a = (tv.getLeft() + tv.getRight()) / 2;
int b = (tv.getTop() + tv.getBottom()) / 2;
int radius = tv.getWidth();
Animator anim = ViewAnimationUtils.createCircularReveal(tv, a, b, 0, radius);
anim.start();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
return super.onCreateOptionsMenu(menu);
}
}
Run Code Online (Sandbox Code Playgroud)
现在还很早,所以我真的找不到任何答案.有任何想法吗?
rla*_*ay3 15
您收到错误是因为您传入的视图尚未测量并在屏幕上显示.ViewAnimationUtils.createCircularReveal
需要测量目标视图来计算动画.你还会发现,你的变量a
,并b
始终为0.
如果要进行实验,请创建动画并在按钮单击侦听器中启动它.以下是使用您的代码的示例:
Button button = (Button) findViewById(R.id.your_button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TextView tv = (TextView) findViewById(R.id.text);
int a = (tv.getLeft() + tv.getRight()) / 2;
int b = (tv.getTop() + tv.getBottom()) / 2;
int radius = tv.getWidth();
Animator anim = ViewAnimationUtils.createCircularReveal(tv, a, b, 0, radius);
anim.start();
}
});
Run Code Online (Sandbox Code Playgroud)
Ben*_*Kok 15
您可以Runnable
用来做动画.该Runnable
视图的创建后将会运行.无需发布延迟.
view.post(new Runnable()
{
@Override
public void run(){
//create your anim here
}
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8934 次 |
最近记录: |