0

我不知道代码有什么问题..我尝试了几种不同的方法,但没有任何效果..所以我有一个扩展 View 的类,因为我需要自己做 onDraw,还有一个放置自定义视图的 xml . 好的,这是代码..

主图像处理程序.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >


    <net.stojakovic.example.ImageMainHandler.Panel
        android:id="@+id/custom_view"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" 
    />

</LinearLayout>

以及带有自定义视图的活动

package net.stojakovic.example;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;

import com.actionbarsherlock.app.SherlockActivity;

public class ImageMainHandler extends SherlockActivity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mainimagehandler);
    }


    public static class Panel extends View {                

        public Panel(Context context) {
            super(context);
            Log.w("Panel","constructor");
        }

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

        @Override
        public void onDraw(Canvas canvas) {
            Log.w("Panel","onDraw");
        }
    }   
}

当我这样做时,应用程序崩溃并显示 LogCat 消息:

java.lang.RuntimeException:无法启动活动 ComponentInfo{net.stojakovic.example/net.stojakovic.example.ImageMainHandler}:android.view.InflateException:二进制 XML 文件第 8 行:膨胀类 net.stojakovic.example.ImageMainHandler 时出错。控制板

当我像这样在 xml 中定义自定义视图时,应用程序不会崩溃但没有任何反应,构造函数不会被调用

<View
    class="net.stojakovic.example.ImageMainHandler.Panel"
    android:id="@+id/custom_view"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
/>
4

0 回答 0