【发布时间】:2014-12-02 07:29:29
【问题描述】:
我创建了一个自定义 ImageView 类,因为我想为我的 Canvas 覆盖 onDraw 方法;但是,我的自定义 ImageView 类没有继承 XML 属性 scaleType="centerInside" 和 adjustViewBounds="true"。如果我切换到默认的 ImageView,一切正常 - 但我怎样才能让它在我的自定义 Image View 中工作?
在下面的类中,我只是从我的应用程序类中检索位图并将其绘制到画布上;但是,当使用我的 CustomImageView 时 - 图像很大并且没有正确缩放。知道如何解决这个问题吗?谢谢!
自定义 ImageView XML:
<com.project.app.controls.CustomImageView
android:id="@+id/myImage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="centerInside"/>
自定义 ImageView 类:
public class CustomImageView extends ImageView {
ProjectApp wApp;
Paint paint;
public CustomImageView(Context context, AttributeSet attrs) {
super(context, attrs);
wApp = ProjectApp.createInstance();
paint = new Paint();
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);
canvas.drawBitmap(wApp.photoTaken, 0, 0, null);
}
}
【问题讨论】:
-
试试
android:scaleType="fitXY" -
用Matrix参数调用canvas.drawBitmap,从grtImageMatrix()中获取
-
@Evan B:进展如何?
标签: android android-layout android-canvas android-imageview