`
ouyangfeng521
  • 浏览: 248810 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

android 在自己的程序中添加Widget

阅读更多
package com.test;

import java.util.List;

import android.app.Activity;
import android.appwidget.AppWidgetHost;
import android.appwidget.AppWidgetHostView;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProviderInfo;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.LinearLayout;

public class AndroidImActivity extends Activity {
    
//	private WallpaperManager manager;
	
	private static final int APPWIDGET_HOST_ID = 1024;

	private AppWidgetHost  mAppWidgetHost ;
	
	private AppWidgetManager manager;
	
	
	
	int current;
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        manager = AppWidgetManager.getInstance(this);
        mAppWidgetHost = new AppWidgetHost(this, APPWIDGET_HOST_ID);
        mAppWidgetHost.startListening();
        current   = mAppWidgetHost.allocateAppWidgetId();
//        manager = WallpaperManager.getInstance(this);
    }
    /*
    private void deCodeImage(){
    	InputStream in = getResources().openRawResource(R.drawable.logo);
    	Bitmap image = BitmapFactory.decodeStream(in);
    	int height = image.getHeight();
    	int width = image.getWidth();
    	image.getPixel(1, 1);
    }
    
    public void test(View v){
    	deCodeImage();
    	manager.setWallpaperOffsetSteps(1.0f / 2, 0);
    	IBinder windowToken = v.getWindowToken();
		manager.setWallpaperOffsets(windowToken ,  Math.max(0.f, Math.min(0.3f, 1.f)), 0);
//		manager.sendWallpaperCommand(windowToken, "android.wallpaper.tap", -1, -1, -1,null);
    	current++;
    	if(current ==3) current=0;
////    	try {
////			manager.clear();
////		} catch (IOException e) {
////			e.printStackTrace();
////		}
    	
    }*/
    
    public void test(View v){
//    	Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_PICK);
    	 int appWidgetId = mAppWidgetHost.allocateAppWidgetId();
//    	 intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId );
//    	startActivityForResult(intent, 101);
    	List<AppWidgetProviderInfo> insts = manager.getInstalledProviders();
    	for(AppWidgetProviderInfo info :insts){
    		if(info.provider.getClassName().equals("com.android.music.MediaAppWidgetProvider")){
    			manager.bindAppWidgetId(appWidgetId, info.provider);
    			break;
    		}
    	}
    	System.out.println(appWidgetId);
    	AppWidgetProviderInfo info =manager. getAppWidgetInfo(appWidgetId);
		 AppWidgetHostView view = mAppWidgetHost.createView(this, appWidgetId,info);
		 view.setAppWidget(appWidgetId, info);
		 view.setMinimumHeight(info.minHeight);
		 view.setMinimumWidth(info.minWidth);
		 LinearLayout l = (LinearLayout) findViewById(R.id.roots);
		 l.addView(view);
    }
    
    @Override
    	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    		System.out.println(requestCode +"==============="+ resultCode);
    		if(requestCode == 101){
    			int appWidgetId = data.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, -1);
    			System.out.println(appWidgetId);
    			 AppWidgetProviderInfo info =manager. getAppWidgetInfo(appWidgetId);
    			 AppWidgetHostView view = mAppWidgetHost.createView(this, appWidgetId,info);
    			 view.setAppWidget(appWidgetId, info);
    			 view.setMinimumHeight(info.minHeight);
    			 view.setMinimumWidth(info.minWidth);
    			 LinearLayout l = (LinearLayout) findViewById(R.id.roots);
    			 l.addView(view);
    		}
    	}
}
 
分享到:
评论

相关推荐

    android Launcher添加widget源码

    在Android系统中,Launcher是用户界面的一个重要组成部分,它提供了应用程序的启动图标和小部件(Widgets)等元素,使得用户可以方便地访问和管理手机上的应用。本篇将深入探讨如何在自定义的Launcher中添加Widget,...

    Android桌面插件-时钟widget

    在Android操作系统中,桌面插件(Widgets)是用户界面的一大特色,它们允许用户将应用程序的部分功能直接放置在手机或平板电脑的主屏幕上,无需打开应用即可进行交互。本主题聚焦于"Android桌面插件-时钟widget",这...

    android widget

    - 在Widget中,Intent可以用来启动Activity,或者与后台Service通信。 8. **权限管理**: - 创建和使用Widget可能需要申请一些权限,例如读写外部存储、访问网络等,需在AndroidManifest.xml中声明。 9. **...

    Android的widget使用listview布局

    本教程将深入探讨如何在Android Widget中集成ListView布局,以便在小部件上展示动态、可滚动的数据。 首先,为了创建一个包含ListView的Android Widget,我们需要在`res/xml`目录下创建一个新的XML布局文件,例如`...

    安卓Widget小组件相关-AppWidge不用通过点击直接添加到应用程序中.rar

    - 这是Widget的核心组件,负责处理来自系统的广播事件,如用户添加Widget、更新Widget或删除Widget等。 - 在`onReceive()`方法中,我们可以根据意图(Intent)的行动(Action)来执行相应的操作,例如更新Widget的...

    android appwidget使用说明及示例程序

    Android AppWidget是Android系统提供的一种轻量级组件,允许开发者在用户的主屏幕上创建小型应用程序,通常称为小部件或快捷方式。这些小部件不需要用户启动应用,就能直接在主屏幕上显示和交互,为用户提供便捷的...

    android 源码 android Widget开发案例 eclipse项目 直接导入

    在Android平台上,Widget是应用程序的一种特殊形式,它们可以在用户的主屏幕上显示实时信息,提供快捷操作,无需打开完整的应用。这个“android 源码 android Widget开发案例 eclipse项目 直接导入”是一个很好的...

    Android-Android桌面小部件widget日签Or日历可作为桌面日历

    它是Android系统提供的一种轻量级组件,用户可以直接在主屏幕上添加和操作,无需打开应用程序。这种小部件通常用于快速访问或显示信息,如天气预报、音乐播放控制、新闻摘要等。创建一个桌面小部件涉及到以下步骤: ...

    android之appwidget(二)启动新activity

    在本篇博文中,我们将深入探讨如何在AppWidget中启动一个新的Activity,这通常是为了提供更丰富的用户体验或者执行更复杂的任务。 首先,让我们了解AppWidget的基本结构。一个AppWidget由一个或多个`RemoteViews`...

    android的widget桌面开关例子

    在Android平台上,Widget是应用程序的一种轻量级交互方式,它可以直接在用户的主屏幕上显示和操作,为用户提供便捷的功能入口。本示例中的“android的widget桌面开关例子”着重于创建一个能够在桌面上显示并控制2G和...

    android桌面应用程序

    在 Android 桌面应用程序中,Home 分析目录是非常重要的组件之一,负责管理桌面上的图标、快捷方式、widget 等元素。Home 分析目录的主要功能包括: 1. 桌面图标管理:Home 分析目录负责管理桌面上的图标,包括添加...

    android之appwidget(四)终 appwidget控件更新

    在Android平台上,AppWidget是能够将小部件添加到用户主屏幕上的迷你应用程序,它们提供了一种无需打开完整应用即可展示信息或执行简单操作的方式。本文将深入探讨Android AppWidget的第四部分,主要关注如何更新App...

    Android的桌面Widget的Demo

    - **AppWidgetHost**: 是应用用来管理在自己界面上添加的Widget的类,通常在主应用中使用。 - **AppWidgetManager**: 是系统服务,负责管理所有Widget的实例,包括添加、删除和更新。 6. **用户交互** 用户可以...

    android appwidget 经典完整代码

    Android AppWidget是Android系统提供的一种桌面小部件功能,允许开发者创建可以放置在用户主屏幕上的小型应用程序。这些小部件不需要用户直接启动,而是持续显示在屏幕上,为用户提供快速访问或控制应用的功能。在这...

    Android App Widget 开发

    最后,为了让用户能够添加你的App Widget到主屏幕,需要在应用程序的主活动中提供一个启动`AddWidgetActivity`的选项。`AddWidgetActivity`可以引导用户完成添加操作。 以上就是一个简单的Android音乐播放器App ...

    Android高级应用源码-android Widget小组件开发.rar

    6. 添加到主屏幕:用户可以通过长按主屏幕,选择添加Widget来将你的应用Widget添加到设备上。 四、Widget的优化技巧 1. 使用RemoteViewsService:当Widget需要展示复杂或动态的数据时,可以创建一个...

    Android -- AppWidget源码.zip

    在Android系统中,AppWidget是桌面小部件的实现,它允许开发者将应用程序的功能和信息集成到用户的主屏幕上,用户无需打开应用即可与之交互。这个压缩包“Android -- AppWidget源码.zip”很可能是包含了Android App...

    安卓Widget小组件相关-androidWidget小组件开发.zip

    - 在真机或模拟器上安装应用,然后在主屏幕添加Widget以进行测试。 - 注意,某些Widget功能可能需要特定的Android版本才能支持。 通过"MyWidget"这个示例项目,你可以学习到如何从零开始构建一个基本的Android ...

    Android程序研发源码Android Widget快捷拨号程序源码.zip

    本源码包"Android程序研发源码Android Widget快捷拨号程序源码.zip"提供了一个完整的Android应用示例,专门用于实现一个Widget,让用户可以直接从桌面进行电话拨打,无需进入应用。 首先,我们需要理解Android ...

Global site tag (gtag.js) - Google Analytics