java - 缺少 Android Rect set() 方法

标签 java android graphics 2d rect

我正在使用 Android Studio 1.1.0 并尝试在某些代码中使用 Rect .set() 方法来设置新创建的矩形的边缘,但我收到消息“无法解析符号” set'"即使我按照提示导入了android.graphics.Rect。

当我声明一个新的 Rect 并同时定义它的边时,它工作正常。

但是,如果我尝试声明一个新的空 Rect,然后在另一条线上定义它的边,它就无法识别 set() 方法的存在(或者我试图错误地访问它?)。

此外,当我键入 Rect 名称后跟“.”时,它不会提示我使用各种 Rect 函数,而是弹出“ClassLoaderCreator”和“Creator”。

我做错了什么,我怎样才能让这个和其他 Rect 函数工作?我尝试清理和重建我的项目。

import android.graphics.Rect;

public class MainActivity extends ActionBarActivity {

Rect staticRect = new Rect(100,100,200,200); // works fine

Rect dynamicRect = new Rect(); // this is okay, too, but not useful until set

dynamicRect.set(200,200,300,300); // Cannot resolve symbol 'set'


dynamicRect. // As I start typing here, after the . none of the Rect functions appear, 
             // just "ClassLoaderCreator<T>" and "Creator<T>"

...

最佳答案

问题是您试图从静态上下文(即从实例方法外部)操作实例变量 dynamicRect。以下是您的选择:

创建一个方法来进行初始化,并在适当的地方调用它。例如:

private void setupRects() {
    dynamicRect.set(200,200,300,300);
    // do other stuff
}

如果合适,您也可以将初始化代码放在 Activity 的 onCreate 方法中。

或者,如果您希望静态初始化dynamicRect,您可以执行以下操作:

static Rect dynamicRect = new Rect();

static {
    dynamicRect.set(200,200,300,300);
    // do other stuff
}

关于java - 缺少 Android Rect set() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28846312/

相关文章:

java - 服务在单次广播中触发数百次

C++ GUI 开发 - 位图与 vector 图形 CPU 使用率

java - 实现这个最有效的方法是什么?

java - Java中如何观察完整文件系统的变化?

java - 安卓编程: Calling function with different input using onClick

java - 如何相对于标记翻转 ByteBuffer?

java - 在 onClick 上切换布局的可见性

java - 创建一个工作 Java GUI

Android HTML5 地理定位不显示 GPS 图标

java - Swing 绘制在不正确的坐标上