要示例代码额-_-!就是在touchEvent()中获取当前(x, y)坐标, 然后在dispatchDraw()中利用canvas.drawBitmap(.., x, y...)去画这张图拜...
调用dispatchDraw()可以通过调用invalidate()函数触发
调用dispatchDraw()可以通过调用invalidate()函数触发
解决方案 »
- 求Android手机号码吉凶查询、归属地查询源码
- 求教:froyo 中如何启动overlays.cpp中的main()函数
- 请问一下多个activity 跳回主界面的解决方法 谢谢
- openGL es 网格纹理真机不显示
- Android 中如何得到字符的像素宽度。求各位大侠鼎力相助。
- Android工程跑不起来??
- ndk编译x86可执行文件在linux中无法运行
- Android 锁屏壁纸问题求教
- avd启动两个程序.一个是SocketServer,一个是client(Socket).两个avd.ip都是10.0.2.15.怎样改其中一个IP?
- 推送功能的底层实现原理有谁了解的?
- 如何为alertDialog添加onKeyDown()事件监听?
- 定制系统时,android4.0(或2.3)下,如何加入自已的壁纸?
public class CustomView extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}DrawView组件:public class DrawView extends View
{
public float currentX = 40;
public float currentY = 50;
/**
* @param context
*/
public DrawView(Context context , AttributeSet set)
{
super(context , set);
}
@Override
public void onDraw (Canvas canvas)
{
super.onDraw(canvas);
//创建画笔
Paint p = new Paint();
//设置画笔的颜色
p.setColor(Color.RED);
//绘制一个小圆(作为小球)
canvas.drawCircle(currentX , currentY , 15 , p);
}
@Override
public boolean onTouchEvent(MotionEvent event)
{
//当前组件的currentX、currentY两个属性
this.currentX = event.getX();
this.currentY = event.getY();
//通知改组件重绘
this.invalidate();
//返回true表明处理方法已经处理该事件
return true;
}
}xml布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<!-- 使用自定义组件 -->
<org.crazyit.event.DrawView
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</LinearLayout>代码引用自《疯狂安卓讲义》李刚