自定义Absolutelayout
来源:互联网 发布:淘宝怎么抢红包 编辑:程序博客网 时间:2024/05/17 07:41
package com.control;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.AttributeSet;
import android.util.Log;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsoluteLayout;
import android.widget.ImageView;
import android.widget.TextView;
public class MyAbsoluteLayout extends AbsoluteLayout {
private static final String TAG=MyAbsoluteLayout.class.getSimpleName();
private Bitmap bitmap,bitmap_push,bitmap_ball;
private ImageView iv=null;
private ImageView iv_ball=null;
private int locX=50,locX_ball=250;
private int locY=50,locY_ball=250;
private static int buf[]={R.drawable.a,R.drawable.b,R.drawable.ball,R.drawable.a_press,R.drawable.b_press};
private static int bufSizeX[]={50,100,150,200,250};
int n=0;
GestureDetector mGestureDetector;
AbsoluteLayout.LayoutParams params,params_ball;
public MyAbsoluteLayout(Context context, AttributeSet attrs) {
super(context, attrs);
this.layout(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT, 0, 0);
bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.icon);
bitmap_push=BitmapFactory.decodeResource(getResources(), R.drawable.add_bt);
bitmap_ball=BitmapFactory.decodeResource(getResources(), R.drawable.ball);
for(int i=0;i<buf.length;i++){
iv=new ImageView(this.getContext());
bitmap=BitmapFactory.decodeResource(getResources(), buf[i]);
params=new AbsoluteLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT, bufSizeX[i], bufSizeX[i]);
iv.setImageBitmap(bitmap);
this.addView(iv,params);
iv.setOnTouchListener(onl);
}
// iv=new ImageView(this.getContext());
// params=new AbsoluteLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT, locX, locY);
// iv.setImageBitmap(bitmap);
// this.addView(iv,params);
// TextView tx=new TextView(this.getContext());
// params=new AbsoluteLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,ViewGroup.LayoutParams.FILL_PARENT, 0, 0);
// this.addView(tx,params);
// //ball
// iv_ball=new ImageView(this.getContext());
// params_ball=new AbsoluteLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT, locX_ball, locY_ball);
// iv_ball.setImageBitmap(bitmap_ball);
// this.addView(iv_ball,params_ball);
// iv.setOnTouchListener(onl);
// iv_ball.setOnTouchListener(onl);
// this.setOnTouchListener(onl);
}
private OnTouchListener onl=new OnTouchListener(){
@Override
public boolean onTouch(View v, MotionEvent event) {
int x=(int)event.getRawX();
int y=(int)event.getRawY();
if(event.getAction() == MotionEvent.ACTION_DOWN){
locX=x;
locY=y;
Log.d(TAG, "down---locX"+x+"locY"+y);
if(v == iv){
bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.add_bt);
iv.setImageBitmap(bitmap);
}
}
if(event.getAction() == MotionEvent.ACTION_UP){
locX=x;
locY=y;
Log.d(TAG, "up---locX"+x+"locY"+y);
if(v == iv){
bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.icon);
iv.setImageBitmap(bitmap);
}
if(v == iv_ball){
iv_ball.layout(locX_ball, locY_ball, locX_ball+iv_ball.getWidth(), locY_ball+iv_ball.getHeight());
}
}
if(event.getAction() == MotionEvent.ACTION_MOVE){
locX=x;
locY=y;
if(v == iv_ball){
// locX_ball=locX;
// locY_ball=locY;
Log.d(TAG, "move---locX"+x+"locY"+y);
iv_ball.layout(locX - iv_ball.getWidth() / 2, locY - iv_ball.getHeight()
/ 2, locX + iv_ball.getWidth() / 2, locY + iv_ball.getHeight()
/ 2);
// iv_ball.layout(locX - MyAbsoluteLayout.this.getWidth() / 2, locY - MyAbsoluteLayout.this.getHeight()
// / 2, locX + MyAbsoluteLayout.this.getWidth() / 2, locY + MyAbsoluteLayout.this.getHeight()
// / 2);
//
//
// // slow down the motion reaction
// if (n % 4 == 0) {
// if (x < locX_ball && y > locY_ball
// && y < locY_ball + iv_ball.getWidth()) {
// System.out.println("test] left");
// } else if (x > locX_ball + iv_ball.getWidth() && y > locY_ball
// && y < locY_ball + iv_ball.getWidth()) {
// System.out.println("test] right");
// } else if (y < locY_ball && x > locX_ball
// && x < locX_ball + iv_ball.getWidth()) {
// System.out.println("test] top");
// } else if (y > locY_ball + iv_ball.getWidth() && x > locX_ball
// && x < locX_ball + iv_ball.getWidth()) {
// System.out.println("test] buttom");
// }
// }
}
}
v.postInvalidate();
return true;
}
};
}
-----------------------------
<com.control.MyAbsoluteLayout android:id="@+id/control_custom_view"
android:layout_width="fill_parent" android:layout_height="fill_parent"/>
- 自定义Absolutelayout
- AbsoluteLayout
- AbsoluteLayout 相框
- AbsoluteLayout xiantu
- AbsoluteLayout布局
- AbsoluteLayout布局
- AbsoluteLayout布局
- Android之LinearLayout、AbsoluteLayout
- 7.4 AbsoluteLayout布局详解
- Android Layout之AbsoluteLayout
- absolutelayout 实现图片重叠
- 绝对布局AbsoluteLayout
- FrameLayout,TableLayout,AbsoluteLayout
- 绝对布局(AbsoluteLayout)
- Android UI Layout 之 AbsoluteLayout
- Android UI Layout 之 AbsoluteLayout
- LinearLayout和AbsoluteLayout的区别
- Android布局方式(AbsoluteLayout)学习
- 长白山之旅
- 浅谈 Mousewheel 事件
- 《转》 MMU代码分析(作者:wogoyixikexie@gliet)
- pku1007 poj 1007 hdu1379 DNA Sorting
- 为什么我觉得软件测试是一个有前途的行业?
- 自定义Absolutelayout
- MOSFET的特性参数
- 一个小学数学题引发的血案
- 一个很有意思的餐馆
- fedora 13 mysql安装记录
- linux下gcc编译环境安装与测试
- gedit折叠功能的实现
- F#入门-第二章 F#基础-第四节 let语句-值的绑定
- VC 获取机器的Ip和主机名