`
寻梦者
  • 浏览: 627635 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

自定义View的注意点

阅读更多

最近在家无事,开始学习android。

自己做了一个自定义的View,布署到main.xml上去,却发现跑的时候老是出现错误。

后来发现,原来是集成View的时候没有写上父类3个参数的构造方法。

估计其内部默认情况下会调用那个构造方法吧。

 

 

贴上代码:

main.xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:layout_width="fill_parent" android:layout_height="fill_parent">
	<com.ant.memory.PhotoView
		android:id="@+id/photo" android:layout_width="fill_parent"
		android:background="#0000ff"
		android:layout_height="fill_parent" tileSize="24" />
</FrameLayout>

 

PhotoView:

public class PhotoView extends View {
	/*
	 * 这个constructor是必须的要的,如果你想将这个View布署道main.xml上
	 */
	public PhotoView(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
	}
	
	@Override
	public void draw(Canvas canvas) {
		// TODO Auto-generated method stub
		super.draw(canvas);
		
		InputStream is=getResources().openRawResource(R.drawable.back);
		Bitmap bitmap=BitmapFactory.decodeStream(is);
		Paint paint=new Paint();
		canvas.drawBitmap(bitmap, 50, 50, paint);
	}
}

 

 

Memory.java:

package com.ant.memory;

import android.app.Activity;
import android.os.Bundle;
import android.view.Window;

public class Memory extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        PhotoView photoView;
        setContentView(R.layout.main);
        photoView=(PhotoView) findViewById(R.id.photo);
    }
}

 

分享到:
评论

相关推荐

    自定义View注意事项

    一、自定义view需要继承View类 既然是自定义view所以为了方便需要继承View类,或者其他View类例如TextView等类 二、必须写入构造方法否则无法使用findViewbyId()方法找到控件 之定义View必须写入构造函数而且需要...

    自定义View

    * 自定义View的分类 * 自定义View的注意事项 * 自定义View的实现 * 自定义View使其支持wrap_content和padding * 自定义属性的实现过程

    RainyView-Android 自定义View之下雨动画 效果.zip

    这里有很多自定义view可以参考思路思路比较简单,整个view无非两样东西云雨滴这里又包含两部分动画,一部分是云的左右移动动画,一部分是雨滴移动动画 那我们这里可以自定义一些属性,如果对自定义属性还不太了解的...

    自定义view,父容器无限onmeasure、 onlayout

    背景:楼主本人的电脑在某一段时间使用过程中,只要一启动模拟器上我们的APP,电脑散热风扇的声音就加大,...这个自定义view在onDraw方法中,调用了一个很不起眼的方法:setLayoutParams. 将这个方法去掉之后,界面滑动

    自己实现的一个抢红包demo,自定义view实现了移动、旋转、透明度3种渐变效果,设置活动时效为1分钟,会越来越快,我封装在一个redbag类

    自己实现的一个抢红包demo,自定义view实现了移动、旋转、透明度3种渐变效果,设置活动时效为1分钟,会越来越快,我封装在一个redbag类,中具体代码自己看吧 [注意:本资源来自网络,如有侵权,请联系我删除,谢谢。...

    Android开发之自定义View(视图)用法详解

    本文实例讲述了Android开发之自定义View(视图)用法。分享给大家供大家参考,具体如下: ...为了实现自定义View,需要创建一个新的类,然后重写onDraw方法,在此需要注意,新创建的类MyView要继承View基类,同时还

    android自定义view-劳力士手表

    android自定义view-劳力士手表。 [注意:本资源来自网络,如有侵权,请联系我删除,谢谢。]

    稿纸(自定义view)

    概述:自定义view,实现稿纸功能,可撤消,可恢复,稿纸可设置大小和拖动,有做限制,防止内存不足的问题出现。 使用方法:将DraftView添加到布局中即可。 接口api: // 获取最大宽度 public int getDraftMaxWidth...

    Android自定义View绘制随机生成图片验证码

    本篇文章讲的是Android自定义View之随机生成图片验证码,开发中我们会经常需要随机生成图片验证码,但是这个是其次,主要还是想总结一些自定义View的开发过程以及一些需要注意的地方。 按照惯例先看看效果图: 一...

    Android实现在xml文件中引用自定义View的方法分析

    主要介绍了Android实现在xml文件中引用自定义View的方法,结合实例形式分析了Android自定义view的实现方法与相关注意事项,需要的朋友可以参考下

    Android中自定义一个View的方法详解

    Android中自定义View的实现比较简单,无非就是继承父类,然后重载方法,即便如此,在实际编码中难免会遇到一些坑,我把自己遇到的一些问题和解决方法总结一下,希望对广大码友们有所帮助。 注意点① 用xml定义...

    SmartLightView:Android开发自定义View之高仿米家的筒灯控制UI

    SmartLightView高仿米家的筒灯控制UI:一. 前言;兜兜转转,不知不觉做Android开发已经快2年了,上半年一直在搞wifi模块开发,导致不务正业...注意此要有自定义view的基本常识! Path mPathCircle = new Path(); //画圆

    Android 自定义View之边缘凹凸的优惠券效果的开发过程

    和往常一样,主要总结一下在自定义View的开发过程中需要注意的一些地方。 按照惯例,我们先来看看效果图 一、写代码之前,我们先弄清楚view的启动过程: 之所以想要弄清楚这个问题是因为代码里面用到了...

    Kotlin自定义View系列教程之标尺控件(选择身高、体重等)的实现

    和往常一样,主要还是想总结一下自定义view之实现标尺控件的开发过程以及一些需要注意的地方。 按照惯例,我们先来看看效果图 一、先总结下自定义View的步骤: 1、自定义View的属性 2、在View的构造方法中...

    Android实用控件自定义逼真相机光圈View

    先说明一下本自定义view的主要内容: 1.本效果的实现就是在光圈内六边形六个角上分别绘制六个光圈叶片 2.根据不同的光圈值计算出内六边形的大小,从而计算每个六边形的顶点的位置 3.设计叶片。也可以让美工MM提供...

    redmine-view-customize:查看Redmine的自定义插件

    Redmine View自定义插件 这个插件使您可以自定义的视图。 特征 ... 安装 将插件安装在Redmine插件目录中,将此存储view_customize为...注意:目录名称必须是view_customize 。 目录名称不同,它将无法运行插件。 用法 添加

    Android使用自定义View实现360手机卫士波浪球进度的效果

    (3)有一点需要注意的是,裁剪圆的时候用到的clipPath这个方法,在android 4.1,和4.2等某些系统上,裁剪出来不是圆,而是矩形,针对这些系统 需要在manifest.xml文件的activity中 将硬件加速关掉,因为默认是开启...

    CustomView:自定义View

    本项目实现自定义View部分来自自己实现,部分来自网上开源。 实现思路 心形动画 主要包括两部分,点赞动画和取消动画。对于点赞动画主要就是心形慢慢放大填满整个轮廓;对于取消动画主要分三个步骤:1)心中间出现...

Global site tag (gtag.js) - Google Analytics