`

Android中如何自定义view

阅读更多
Hi,titan:

To the best of my knowledge, there are two ways to implement customized view.

The first is using "WindowManager.LayoutParams"
Ex as below,
    
WindowManager.LayoutParams lp;
	//allen add view begin
        LayoutInflater inflate = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        floatview = (RelativeLayout) inflate.inflate(R.layout.mapfloatview, null);
        mWindowManager = (WindowManager)getSystemService(Context.WINDOW_SERVICE);
        lp = new WindowManager.LayoutParams(
    		 320, 40,
                -160,-180,
                 WindowManager.LayoutParams.TYPE_APPLICATION,
                 WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
                    | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
                //WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
                PixelFormat.TRANSLUCENT);
  	 //allen add view end
	
	 mWindowManager.addView(floatview, lp);


And the second is to define your customized view's class, see below:

drawView dv;
	dv = new drawView(this);

	//try to canvas, not used now
	public class drawView extends View{

		private Bitmap bmp;
		private int x, y;
		public drawView(Context context){
			super(context);
			setFocusable(true);
			bmp = BitmapFactory.decodeResource(getResources(), R.drawable.b1);
			x = 0;
			y = 0;
		}
		
		@Override
		public void onDraw(Canvas canvas){
			super.onDraw(canvas);
			Paint paint = new Paint();
			/*switch(posState){
				case PosState.LEFT_TOP:{
					if(leftTopState == LEFT_TOP_STATE_ONE){
						Log.i(TAG,"leftTopState == LEFT_TOP_STATE_ONE");
						canvas.drawBitmap(bmp, 0, 0, paint);
					}
					else if(leftTopState == LEFT_TOP_STATE_TWO){
						Log.i(TAG,"leftTopState == LEFT_TOP_STATE_TWO");
						canvas.drawBitmap(bmp, 0, 189, paint);
					}
					
					break;
				}
			}*/
			//Here you may draw anything
			canvas.drawBitmap(bmp, x, y, paint);
		}
	}

	//Add view
	layout.addView(dv);


BR,
Allen
分享到:
评论

相关推荐

    Android中自定义View

    在自定义View中添加动画效果,可以使用ViewPropertyAnimator、ValueAnimator或者自定义View的invalidate()方法来实现。ViewPropertyAnimator提供了一种简洁的方式来改变View的属性,而ValueAnimator可以控制属性随...

    Android中自定义View之流式布局

    2. **绘制逻辑**:重写`onDraw()`方法,这是自定义View中进行实际绘制的地方。但流式布局主要关注布局,因此`onDraw()`在这可能相对简单,主要绘制边框或背景等。 3. **测量逻辑**:重写`onMeasure()`方法。这个...

    Android中自定义View的实现方式总结大全

    Android中自定义View的实现方式总结大全 Android中自定义View的实现方式可以分为四个大类:自绘控件、继承ViewGroup派生的特殊Layout、继承特定的View、继承特定的ViewGroup。 1. 自绘控件:继承View,重写onDraw...

    android 自定义View界面大合集

    2. **绘图基础**:`Canvas`和`Paint`对象在自定义View中起到核心作用。`Canvas`提供了绘图操作接口,如绘制线条、形状、文本和位图,而`Paint`则控制颜色、样式、字体等绘图属性。熟悉`Matrix`变换和`Shader`着色器...

    android 自定义view比较综合的例子

    5. 动态布局:在自定义View中动态添加或移除子View,以实现可变布局。 6. 触摸事件处理:通过MotionEvent监听用户的触摸行为,处理滑动、拖拽等操作。 7. 数据绑定:使用DataBinding库将数据与View绑定,减少代码量...

    Aj_02的Android 中自定义View的应用(源码)

    来自:http://blog.csdn.net/Android_Tutor/archive/2010/04/18/5499731.aspx 测试:Android 中自定义View的应用,在main.xml中嵌入自己写的view

    android 自定义view drawable

    在Android开发中,自定义View是一项重要的技能,它允许开发者根据特定需求创建具有独特功能和视觉效果的组件。Drawable在Android中是图形和背景资源的一种表现形式,它广泛用于按钮、列表项、自定义视图等。本篇将...

    Android 自定义View视图

    在Android应用开发中,自定义View视图是一个重要的技术,它允许开发者根据特定需求创建独一无二的用户界面元素。本文将深入探讨如何通过继承View类来实现一个自定义的罗盘界面,以帮助开发者理解自定义视图的工作...

    Android开发-自定义View-AndroidStudio(一)

    在我们从Android小学生 进阶到 Android中学生的路上,肯定需要经历 自定义View。 大神已经给出了,最精简的Demo,我这里 顺水推舟,把一些基础知识 标记在代码之中,各位可以一边看源码 一边学基础。 觉得文章有用,...

    android 自定义View 实例

    在Android开发中,自定义View是一项重要的技能,它允许开发者根据需求创建独特的用户界面元素,以实现更加丰富和个性化的交互体验。本实例主要讲解如何在Android中自定义View,并提供了一个可作为参考的demo。 首先...

    Android自定义View实现转盘旋转的效果

    在Android中,自定义 View 是一种非常重要的技术,可以满足开发者的个性化需求。通过继承 View 类,并重写构造函数和 onDraw() 函数,可以实现自定义的 View。onDraw 函数是 View 的一个关键函数,在界面刷新时会被...

    Android 创建自定义View源码

    本教程将深入探讨Android自定义View的源码实现过程,旨在帮助开发者理解和掌握这一核心技能。 首先,了解自定义View的基本步骤: 1. **定义View类**:创建一个新的Java类,继承自`android.view.View`或其子类,如`...

    BookPage-Android自定义View实现翻页效果,并附带实现教程.zip

    仿真书籍翻页效果BookPageView简介:实现了仿真翻页效果,教程完整地描述了翻页原理...实现了覆盖翻页效果,同时教程中也讲述了页面内容的封装过程教程博客:Android自定义View——从零开始实现覆盖翻页效果效果展示:

    android自定义view自定义buttonDemo

    在Android开发中,自定义View和自定义Button是提升应用界面独特性和交互体验的重要手段。本Demo主要展示了如何通过自定义View和自定义Button来实现特定的视觉效果和交互功能,比如Button在被点击时变换背景。下面...

    Android 自定义View实现水平温度计

    总的来说,这个项目涵盖了Android自定义View的基本流程,以及图形绘制、颜色处理、动态更新等核心知识点,是学习Android自定义组件的一个良好实践。通过学习和研究,开发者不仅可以掌握自定义View的开发技巧,还能...

    Android自定义View实例:深度剖析 水晶/水滴 波浪球 实现步骤详解

    在Android开发中,自定义View是一项重要的技能,它允许开发者创造出独特且富有表现力的UI元素,提升用户体验。本文将深度剖析如何实现一个名为“水晶/水滴 波浪球”的自定义View,并通过详细步骤讲解,帮助你掌握...

    android 自定义View并添加属性

    在自定义View中,我们需要重写`init()`方法,以在View初始化时读取这些属性: ```java @Override protected void onInitialize.AttributeSet(@NonNull AttributeSet attrs) { super.onInitialize.AttributeSet...

    Android音频剪辑裁剪自定义view

    本文将深入探讨如何创建一个Android音频剪辑裁剪的自定义View,以便用户可以通过拖动来调整音频的剪切时长,并通过滑块实时显示对应的时间点。 首先,我们需要理解Android的音频处理基础。Android提供了`...

    android 自定义view及自定义属性

    在Android开发中,自定义View和自定义属性是提升应用个性化和功能扩展性的重要手段。本文将深入探讨这两个核心概念,以及如何在实际项目中应用它们。 ### 自定义View 自定义View允许开发者创建自己的视图组件,以...

    安卓自定义View基础-绘制点、线、矩形、圆形等

    在Android开发中,自定义View是一项重要的技能,它允许开发者根据需求创建独特的用户界面元素,提升应用的用户体验。本文将深入探讨如何在Android中自定义View,并详细讲解如何绘制点、线、矩形和圆形。 首先,理解...

Global site tag (gtag.js) - Google Analytics