`
tracy061
  • 浏览: 65212 次
社区版块
存档分类
最新评论

Widget分区域点击

 
阅读更多
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
    android:minHeight="72dp"
    android:minWidth="72dp"
    android:initialLayout="@layout/widget"
    <span style="background-color: #ff0000;">android:configure="com.example.changewidget.ChangeWidgetActivity"</span>

    android:updatePeriodMillis="84600000" >
</appwidget-provider>
 

Widget配置文件:

 

package com.example.changewidget;

import android.app.Activity;
import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.RemoteViews;

public class ChangeWidgetActivity extends Activity {

    private static final String TAG = "tracy";
	private static final String ATV = "ChangeWidgetActivity		";
	int mAppWidgetId;  
    
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.edit);
        
        /**
         * 表明创建widget失败
         */
        setResult(RESULT_CANCELED);
        
        /**
         * 取出该配置文件对应的widgetId
         */
        Intent intent = getIntent();  
        Bundle extras = intent.getExtras();  
        if (extras != null) {  
            mAppWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID,  
                    AppWidgetManager.INVALID_APPWIDGET_ID);  
        }  

        if (mAppWidgetId == AppWidgetManager.INVALID_APPWIDGET_ID) {  
            finish();  
        }  
        
        /**
         * 设置配置页面的点击效果
         */
        Log.i(TAG,ATV+"onCreate mId="+mAppWidgetId);  
		findViewById(R.id.imageView1).setOnClickListener(clicklisten);
        findViewById(R.id.imageView2).setOnClickListener(clicklisten);
        findViewById(R.id.imageView3).setOnClickListener(clicklisten);
        
    }
    OnClickListener clicklisten = new OnClickListener() {
		
		@Override
		public void onClick(View v) {
			int id = 0;
			switch (v.getId()) {
			case R.id.imageView1:
				id = R.drawable.bssd1;
				break;
			case R.id.imageView2:
				id = R.drawable.bssd2;
				break;
			default:
				id = R.drawable.bsyl1;
				break;
			}
			
			/**
			 * 设置widget的布局文件
			 */
			RemoteViews remoteViews = new RemoteViews(getPackageName(),R.layout.widget);
			
	    	remoteViews.setImageViewResource(R.id.icon, id);
	    	/**
	    	 * 设置widget的分区域点击
	    	 */
	    	Intent intent = new Intent(ChangeWidgetActivity.this,PageOne.class);
			intent.setAction(TAG+mAppWidgetId);
			intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID,mAppWidgetId);
			PendingIntent pendingIntent = PendingIntent.getActivity(ChangeWidgetActivity.this, 0,
					intent, 0);
	    	remoteViews.setOnClickPendingIntent(R.id.icon, pendingIntent);
	    	
			Intent intent2 = new Intent(ChangeWidgetActivity.this, PageTwo.class);
			intent2.setAction(TAG+mAppWidgetId);
			intent2.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID,mAppWidgetId);
	    	PendingIntent pendingIntent2 = PendingIntent.getActivity(ChangeWidgetActivity.this, 0,
					intent2, 0);
	    	remoteViews.setOnClickPendingIntent(R.id.icon2, pendingIntent2);
	    	
	    	/**
	    	 * 更新对应widgetId的widget
	    	 */
	    	AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(ChangeWidgetActivity.this);
	    	appWidgetManager.updateAppWidget(mAppWidgetId, remoteViews);
	    	Intent resultValue = new Intent();  
	        resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID,  
	                mAppWidgetId);  
	        setResult(RESULT_OK, resultValue);  
	        finish();  
		}
	};

}
 

在xml标志配置文件:

<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
    android:minHeight="72dp"
    android:minWidth="72dp"
    android:initialLayout="@layout/widget"
    <span style="background-color: #ff0000;">android:configure="com.example.changewidget.ChangeWidgetActivity"</span>

    android:updatePeriodMillis="84600000" >
</appwidget-provider>
 

 

 

 

分享到:
评论

相关推荐

    鼠标点击别处隐藏widget

    例如,一个搜索框在用户完成输入并点击界面其他区域时可能自动收起,以保持界面简洁。 在GUI编程中,`QWidget`是Qt框架下的一个关键类,它代表了用户界面中的一个可交互元素,如按钮、文本框等。这里的"widget"就是...

    Android appWidget每日一句修正1

    在之前的版本中,用户可能只能在一个较小的区域内点击来切换语言,这可能会导致误操作或者使用不便。现在,开发人员扩大了这个点击区域,使得用户更容易触发语言选择功能,提高了交互的易用性和用户满意度。这种改进...

    DrawerLayout去除内容阴影,点击内容不关闭抽屉,抽屉默认打开,抽屉滑动时内容区域跟随移动

    在本示例中,我们将探讨如何实现特定的需求:去除内容区域的阴影,点击内容时不关闭抽屉,抽屉默认打开,并且在抽屉滑动时内容区域跟随移动。 首先,我们来看如何去除内容区域的阴影。在DrawerLayout中,默认情况下...

    swing实现Widget

    在Swing中,Widget是指基本的用户界面元素,如按钮、文本框、复选框等。这些组件允许用户与应用程序进行交互。在本教程中,我们将深入探讨如何使用Swing来实现Widget。 首先,让我们了解Swing中的主要Widget类别: ...

    widget and container introduction

    这些方法分别用于获取/设置Widget的首选大小、实际大小、位置、父容器、模型等属性,并负责绘制、处理不透明区域以及响应模型变化。 - `GetPreferredExtent` 和 `GetExtent` 用于获取Widget的理想大小和实际大小。 ...

    stacked widget 控件提升

    这使得用户可以在一个固定的区域内方便地切换不同的视图,类似于多页签的浏览器或者手机应用的底部导航栏。 首先,我们需要了解如何在代码中创建和添加Stacked Widget。在Qt Creator中,可以通过设计模式直接拖拽...

    The Standard Widget Toolkit

    SWT(Standard Widget Toolkit)是一种用于构建Java图形用户界面的跨平台工具包,它利用本地操作系统资源来创建高性能的应用程序界面。与AWT和Swing等其他Java GUI库不同,SWT更注重于提供原生外观和性能,因此在...

    【eoeAndroid特刊】第四期 Android widget Ver 2.0.0

    在功能性上,Android Widget 2.0.0可能加入了更多交互元素,如可点击区域的扩展,使得Widget能处理更多的用户输入事件。开发者可以创建更复杂的逻辑,比如集成滑动手势,让用户通过简单的手势就能触发不同的功能。...

    android widget 窗口小部件

    此外,我们还需要为用户提供一个Intent-Filter,让他们能够通过长按主屏幕空白区域添加窗口小部件。在AndroidManifest.xml中添加ACTION_ADD_WIDGET意图过滤器,确保用户可以正确地将你的窗口小部件添加到主屏幕。 ...

    Android侧栏分类点击切换内容

    "Android侧栏分类点击切换内容"这一知识点主要是关于如何实现在侧栏中点击不同的分类,使得主要内容区域动态地更新对应的内容。这在电商类应用中非常常见,因为它们往往需要展示多个商品类别,用户可以通过侧栏快速...

    Qt中点击父页面中其他控件,关闭弹框

    在编译并运行程序后,你可以看到一个简单的界面,当点击“点击我”按钮时,自定义Widget会弹出,然后如果点击其他区域(如主窗口或标签),自定义Widget就会自动关闭。这就是利用Qt4在ubuntu12.04环境下实现"点击父...

    淘宝SDK模块代码 Widget做的模块

    在淘宝SDK中,Widget可以被用来自定义手风琴组件,实现点击标题后展开或收起相关区域的功能。实现手风琴涉及递归布局的理解,状态管理(展开/关闭状态),以及事件监听和响应。 在开发这些Widget时,开发者需要熟悉...

    Widget Icon Templates

    5. **可点击性**:图标应该具有良好的点击区域,特别是在触屏设备上,要确保手指能方便地触碰到。 6. **一致性**:同一应用或平台的所有图标应该有一致的风格和设计语言,形成整体的视觉和谐。 7. **测试**:设计...

    安卓源码圆形可触摸进度条Widget.zip

    - **触摸响应**:用户可以点击或滑动圆形区域,可能触发不同的操作或者改变进度值。 - **动态更新**:通过代码设置或监听者模式实时更新进度,支持百分比或步进式进度显示。 - **动画效果**:可能包含平滑的进度动画...

    类似于Visual Studio的可停靠、可隐藏、抽屉状态Qt控件框架

    DockWidget可以通过拖动标题栏来改变其位置,也可以通过点击最大化按钮将其转换为抽屉状态。 为了实现“可隐藏”功能,我们可以在DockWidget中使用setFeatures()方法,启用QDockWidget::DockOption::...

    A python Tkinter widget to display tile based maps

    6. **事件处理**:添加必要的事件监听器,比如鼠标点击、滚动,以便响应用户的操作,如选择地图上的特定位置或改变缩放级别。 7. **优化性能**:为了提高性能,可以考虑使用虚拟化技术,只在屏幕可见区域内绘制和...

    Qt视频窗口重叠透明窗口,区域截图代码示例

    前者使得窗口对输入透明,即点击穿透到下层窗口;后者则使窗口背景透明,但不影响子控件。 接下来,我们创建一个`DialogVideoControl`类,这个类继承自`QDialog`,用于显示视频并添加透明的截图框。在构造函数中,...

    DrawerLayout去除阴影,阴影部分点击不关闭抽屉并可以触发相关view,抽屉侧滑可响应关闭

    在默认情况下,DrawerLayout会在主内容视图的边缘添加阴影效果,并且当用户点击阴影区域时,抽屉会自动关闭。然而,有时我们可能希望去除这个阴影效果,同时使阴影部分能够点击到背后的视图,且抽屉仍然可以通过侧滑...

Global site tag (gtag.js) - Google Analytics