2017-04-07 70 views
-2

我只是想延長的ImageView:Android的 - 無法擴展的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工作室返回編譯錯誤:

This custom view should extend android.support.v7.widget.AppCompatImageView instead

但進口android.support.v7.widget.AppCompatImageView insted的的android.widget.ImageView沒有解決,因爲問題ImageView被標記爲未導入...

我在做什麼錯在這裏?

+0

你也必須改變'extends'部分;不只是'import' - '公共類SquareImageView擴展了AppCompatImageView'。 –

+0

'SquareImageView extneds android.support.v7.widget.AppCompatImageView' –

回答

4

這工作完全正常

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,你輸入的就是你use.putting什麼別的辦法,你輸入你想使用

1

使用AppCompat小部件是什麼讓你對與前棒棒堂版本設備的一些功能Android系統。

使用AppCompatImageView,ImageView現在會好的。