Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android-无法扩展ImageView_Java_Android_Android Custom View - Fatal编程技术网

Java Android-无法扩展ImageView

Java Android-无法扩展ImageView,java,android,android-custom-view,Java,Android,Android Custom View,我只想扩展ImageView: import android.content.Context; import android.util.AttributeSet; import android.widget.ImageView; public class SquareImageView extends ImageView { public SquareImageView(Context context) { super(context); } pub

我只想扩展ImageView:

import android.content.Context;
import android.util.AttributeSet;
import android.widget.ImageView;

public class SquareImageView extends ImageView {

    public SquareImageView(Context context) {
        super(context);
    }

    public SquareImageView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public SquareImageView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);

        int width = getMeasuredWidth();
        setMeasuredDimension(width, width);
    }

}
但是Android Studio返回编译错误:

此自定义视图应扩展 改为android.support.v7.widget.AppCompatImageView

但是导入
android.support.v7.widget.AppCompatImageView
而不是
android.widget.ImageView
并不能解决问题,因为ImageView被标记为未导入


我做错了什么?

这很好用

import android.content.Context;
import android.support.v7.widget.AppCompatImageView;
import android.util.AttributeSet;

public class CustomImageView extends AppCompatImageView {
    public CustomImageView(Context context) {
        super(context);
    }

    public CustomImageView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public CustomImageView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }
}

导入
AppCompatImageView
时,也必须使用它。不仅如此,在JAVA中,导入的内容就是您使用的内容。换言之,您可以使用
AppCompat
小部件导入您想要使用的内容。小部件允许您在具有Android棒棒糖前版本的设备上拥有一些功能


使用
AppCompatImageView
ImageView
现在就可以了。

对于那些正在寻找答案并使用androidx库的人,这里有一个更新

是的,您仍然需要使用
AppCompatImageView
,但只需使用新的库即可。以下是新的导入声明:

导入androidx.appcompat.widget.AppCompatImageView


只需将此导入更改为此即可。

您还必须更改
扩展部分
部分;不仅仅是导入
-
公共类SquareImageView扩展了AppCompatImageView
SquareImageView扩展了android.support.v7.widget.AppCompatImageView
看起来不错,但我使用的是androidx,而不是v7。这意味着此导入语句不起作用(
无法解析符号“v7”
)。