当前位置: 首页 > 面试题库 >

Java-视图的getWidth()和getHeight()返回0

令狐泓
2023-03-14
问题内容

我正在动态创建我的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);
}

任何帮助表示赞赏。


问题答案:

你打得getWidth()太早了。UI尚未调整大小并在屏幕上布置。

无论如何,我怀疑你是否想做自己正在做的事情—动画化的小部件不会更改其可点击区域,因此无论按钮如何旋转,按钮仍将响应原始方向的单击。

话虽如此,你可以使用维度资源来定义按钮大小,然后从布局文件和源代码中引用该维度资源,以避免出现此问题。



 类似资料:
  • 正如我在标题中所说,这对我来说毫无意义。应该返回宽度的方法返回1920,应该返回高度的方法返回1080。我做错什么了吗? 我的相机活动被锁定在竖屏中。我的手机是三星Note 4。由于我的手机是竖屏并锁定在那个方向,所以我的高度应该是1920,宽度应该是1080,但是当我没有将相机活动锁定在竖屏中时,它仍然返回错误的值,但是当它转到横向模式时,高度是1080,宽度是1920。 我的代码:

  • 问题内容: 我的android应用程序drawable文件夹中有一个jpg图像,分辨率为1000x600。我像这样将图像加载到位图 之后,我打电话返回1500。怎么回事?以及如何获得正确的图像宽度和高度? 问题答案: 这可能是因为密度不同。您的资源可能存储在中等密度的文件夹中,但设备为hdpi。中密度为160dpi,高密度为240dpi。因此,您的位图将缩放为原始大小的1.5倍。有关更多信息,请参

  • 问题内容: 我正在编写一个简单的程序来测试基本的GUI。该程序在屏幕中间打印一个字母,并允许用户使用箭头键移动它。一切正常,但是当我尝试在程序开始时将字母居中时,似乎and 函数未返回正确的数字。 这是包含我的Panel类的代码片段 为什么我和函数返回“ 0”? 谢谢你的帮助 问题答案: 我不能说出原因,但: 避免这种情况的一种方法是重写函数并返回您的首选大小。

  • 本文向大家介绍解决Bitmap通过getWidth和getHeight获取尺寸不符的问题,包括了解决Bitmap通过getWidth和getHeight获取尺寸不符的问题的使用技巧和注意事项,需要的朋友参考一下 在使用BitmapFactory加载图片时,常会出现这种情况,返回的图片尺寸与实际尺寸不符。这是由于我们把图片资源放到res/drawable文件路径下时,选择的文件不同所致,不同的文件夹

  • 我正在使用Spring boot来渲染页面。我也使用了叶子。但是我在从浏览器调用它时得到了下面提供的异常。 我已经编写了视图解析器类,当我使用为此。 和我在应用程序中提到的一样。yml也是。应用yml是 这是我的Controller类,负责渲染index.jspMainController.class

  • 问题内容: 我正在构建一个UI,并且都是在XML中静态定义的。它的所有位置都具有重量,虽然看起来正确,但我想看到所有东西实际上都具有正确的高度。问题是,无论我在哪里为格式布局调用.getHeight(),都得到0。我在onCreate()和onStart()中都尝试过。一样。也会发生所有UI对象。任何想法? XML: 问题答案: 简而言之,视图尚未在onCreate(),onStart()或onR