我动态地在我的android项目中创建所有元素.我试图获得按钮的宽度和高度,以便我可以旋转该按钮.我只是想学习如何使用android语言.但是,它返回0.
我做了一些研究,我发现它需要在onCreate()方法之外的某个地方完成.如果有人能给我一个如何做的例子,那就太好了.
这是我目前的代码:
package com.animation;
import android.app.Activity;
import android.os.Bundle;
import android.view.animation.Animation;
import android.view.animation.LinearInterpolator;
import android.view.animation.RotateAnimation;
import android.widget.Button;
import android.widget.LinearLayout;
public class AnimateScreen extends Activity {
//Called when the activity is first created.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout ll = new LinearLayout(this);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
layoutParams.setMargins(30, 20, 30, 0);
Button bt = new Button(this);
bt.setText(String.valueOf(bt.getWidth()));
RotateAnimation ra = new RotateAnimation(0,360,bt.getWidth() / 2,bt.getHeight() / 2);
ra.setDuration(3000L);
ra.setRepeatMode(Animation.RESTART);
ra.setRepeatCount(Animation.INFINITE);
ra.setInterpolator(new LinearInterpolator());
bt.startAnimation(ra);
ll.addView(bt,layoutParams);
setContentView(ll);
} …Run Code Online (Sandbox Code Playgroud) 我想得到X和Y的观点(ImageButton).
当我尝试使用下面的代码在Click事件上找到X和Y时,我得到View的正确X和Y坐标.
ImageButton imagebutton = findviewbyId(R.id.imagebutton);
imagebutton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
int[] posXY = new int[2];
v.getLocationOnScreen(posXY);
x = posXY[0];
y = posXY[1];
Log.d("X and Y Point", x + " " + y);
}
});
Run Code Online (Sandbox Code Playgroud)
但是在点击视图之前我想要X和Y坐标,所以我尝试用下面的代码得到X和Y.
ImageButton imagebutton = findviewbyId(R.id.imagebutton);
int[] posXY = new int[2];
imageButton.getLocationOnScreen(posXY);
x = posXY[0];
y = posXY[1];
Log.d("X and Y Point", x + " " + y);
Run Code Online (Sandbox Code Playgroud)
但每当我尝试使用ClickListener获取X和Y时,我得到X和Y为0和0.因此,如果没有ClickListener,我不会得到Proper X和Y. 任何人都可以帮助解决什么是实际问题,如何在没有ClickListener的情况下获得Proper X和Y?