Android中Widget的使用示例
之前已经写过通过重绘整个背景的方式,实现物体移动。今天要讲的是,
如何通过移动widget,view等控件,实现部分重绘。结合之前发Droiddraw工具,使用AbsoluteLayout,可以随意放置控件在任何位置。
package com.sky;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AbsoluteLayout;
import android.widget.Button;
@SuppressWarnings("deprecation")
public class AbosoluteMove extends Activity implements OnClickListener
{
/** Called when the activity is first created. */
public Button button1;
public Button button2;
public Button button3;
public Button button4;
Button tmp;//临时保存,选择的BUTTON
int x;
int y;
int flag;//用于标志选择哪个BUTTON
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button1=(Button) findViewById(R.id.widget27);
button2=(Button) findViewById(R.id.widget28);
button3=(Button) findViewById(R.id.widget29);
button4=(Button) findViewById(R.id.widget30);
button1.setOnClickListener(this);
button2.setOnClickListener(this);
button3.setOnClickListener(this);
button4.setOnClickListener(this);
}
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
switch(v.getId())
{
case R.id.widget27:
flag=R.id.widget27;
setTitle("button1");
break;
case R.id.widget28:
flag=R.id.widget28;
setTitle("button2");
break;
case R.id.widget29:
flag=R.id.widget29;
setTitle("button3");
break;
case R.id.widget30:
flag=R.id.widget30;
setTitle("button4");
break;
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
// TODO Auto-generated method stub
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onTouchEvent(MotionEvent event)
{
// TODO Auto-generated method stub
x = (int) event.getX();
y = (int) event.getY();
tmp=(Button) findViewById(flag);//获取所选中的BUTTON
AbsoluteLayout.LayoutParams params1=new AbsoluteLayout.LayoutParams(50,50,x-25,y-50);
tmp.setLayoutParams(params1);//设置BUTTON的新位置
switch(event.getAction())
{
case MotionEvent.ACTION_DOWN:
tmp.invalidate();
tmp.setText("选中down");
break;
case MotionEvent.ACTION_UP:
tmp.invalidate();
tmp.setText("选中UP");
break;
case MotionEvent.ACTION_MOVE:
tmp.invalidate();
tmp.setText("选中move");
break;
}
return super.onTouchEvent(event);
}
}
分享到:
相关推荐
在Android开发中,Widget是应用在主屏幕上的小型UI组件,它们可以提供用户与应用...这就是如何在Android Widget中使用ListView布局的简要概述。通过实践和调整,你可以根据项目的具体需求进一步定制和优化这个功能。
本教程将深入探讨如何通过实例来验证一个Android AppWidget的创建和使用。 首先,我们来看`AndroidManifest.xml`文件,它是Android应用的核心配置文件,包含应用的基本信息以及所有组件(如Activity、Service、...
本文将详细介绍Android AppWidget的使用方法,并提供一个示例程序来帮助理解。 首先,AppWidget的构成主要包含以下几个部分: 1. **AppWidgetProvider**: 这是Android的BroadcastReceiver子类,用于接收和处理与...
在"appwidget"这个压缩包文件中,可能包含了示例代码和资源文件,供开发者学习如何实现上述功能。通过研究这些文件,你可以更好地理解App Widget的工作原理和实现细节,从而在自己的项目中创建出富有特色的桌面小...
在本示例中,我们将探讨如何开发一个简单的音乐播放器App Widget。 首先,创建一个新的Android项目,并在`res/xml`目录下创建一个名为`app_widget_info.xml`的配置文件。这个文件定义了App Widget的基本属性,如...
本教程将深入探讨如何使用Android Widget,通过提供的源码实例,涵盖了一系列基本到高级的组件,包括Button、Chronometer、Clock、DateTime、Edit、Gallery、Grid、Misc、Popup、Progress、Spinner和Video。...
本示例中的“android的widget桌面开关例子”着重于创建一个能够在桌面上显示并控制2G和4G网络切换的Widget。虽然实际的网络切换功能由于系统权限限制未能实现,但这个例子仍然可以教会我们如何设计和构建Android ...
在本案例中,我们探讨的是如何在AppWidget中使用ListView,这是一个增强用户交互的方式,使小部件能显示多行数据。我们将深入源码,了解其工作原理。 首先,我们需要明白`ListView`在Android中的作用。ListView是一...
本示例着重于展示如何在Android中创建和使用Widgets,特别是按钮、编辑框等基本组件的运用。 1. **Widget基础概念**: - Android Widget是一种轻量级的应用程序组件,可以在桌面或主屏幕上显示和交互。 - 用户...
本示例介绍了一个简单的电量监控Widget——"Android_Widget开发实例-电量监控",该实例重点展示了如何使用AppWidget、Service以及RemoteViews进行交互。 首先,AppWidget是Android系统中一种特殊类型的组件,它允许...
- **AndroidWidget项目**:这个压缩包中的示例可能包含一个完整的Android项目,包括src代码、res资源文件和AndroidManifest.xml配置文件。 - **主要类**:通常会有一个名为WidgetProvider的AppWidgetProvider子类...
2. **处理Widget添加事件**:在JYCLauncher中,需要监听用户添加Widget的请求,然后调用AppWidgetHost的`createView()`方法,生成Widget实例并添加到界面上。 3. **适配不同尺寸的Widget**:由于不同的设备屏幕大小...
在Android开发中,AppWidget是桌面小部件,它允许用户在主屏幕上与应用程序进行交互,而无需实际打开应用。在本篇博文中,我们将深入探讨如何在AppWidget中启动一个新的Activity,这通常是为了提供更丰富的用户体验...
本文将深入探讨Android AppWidget的第四部分,主要关注如何更新AppWidget中的控件,以及相关的源码和工具。 **一、AppWidget更新机制** 1. **AppWidgetProvider**: 这是所有AppWidget的核心组件,它是一个...
在Android应用开发中,Widget组件是用户界面的一个重要组成部分,它允许开发者将应用程序的功能和信息直接展示在用户的桌面或通知栏上,无需打开应用程序。Widget提供了便捷的方式,让用户可以快速交互,增强了用户...
这份"Android Widget相关实例源代码"来自eoemobile,它包含了多个关于Android Widget设计和实现的示例。由于压缩包大小超过1MB,因此包含了相当丰富的源码,这对于深入理解和学习Android Widget的使用非常有帮助。 ...
需要在 `AndroidManifest.xml` 中声明使用 App Widget 的权限,例如 `<uses-permission android:name="android.permission.BIND_APPWIDGET" />`。 8. **测试与调试**: 在真实设备或模拟器上安装并测试 App ...
本资料包"androidWidget小组件开发.zip"包含了一个名为"MyWidget"的示例项目,可能包含了关于如何创建和实现Android Widget小组件的代码和资源。 1. **Widget组件概述** - Android Widget是Android系统中的一个...
总的来说,“Android时钟Widget Demo”是一个综合性的Android开发示例,涵盖了Widget的基本使用、定时更新、动画效果和用户交互等多个方面。开发者可以通过这个例子学习如何创建具有动态特性和交互功能的桌面组件,...