zoukankan      html  css  js  c++  java
  • 开源项目之Android StandOut(浮动窗口)

    StandOut 是一个在Android应用中创建浮动窗口的框架,使用该框架可以方便的创建各种浮动窗口。可以指定窗口大小、放置的位置、是否可以拖动、是否可以最小化、可以在通知栏显示提示等等。

    项目如图:

    主要项目StandOut:

    public abstract class StandOutWindow extends Service   //扩展这个类可以轻松地创建和管理的浮动出色的窗口  这是一个后台服务通过Window产生布局视图。

    public class WindowCache   //窗体缓存

    public class Window extends FrameLayout  //浮动窗体视图 

    实例项目FloatingFolders:

    public class AppAdapter extends ArrayAdapter<ActivityInfo>  //程序自定义视图

    public final class FloatingFolder extends StandOutWindow  //只要继承 wei.mark.standout.StandOutWindow类 ,重写(Override)各种函数即可实现浮动窗体

    [html] view plaincopy
     
    1. public class FloatingFoldersLauncher extends Activity {  
    2.     /** Called when the activity is first created. */  
    3.     @Override  
    4.     public void onCreate(Bundle savedInstanceState) {  
    5.         super.onCreate(savedInstanceState);  
    6.   
    7.         StandOutWindow.closeAll(this, FloatingFolder.class);  
    8.         FloatingFolder.showFolders(this);  
    9.           
    10.         finish();  
    11.     }  
    12. }  


    实例项目StandOutExample:

    [html] view plaincopy
     
    1. public class StandOutExampleActivity extends Activity {  
    2.     /** Called when the activity is first created. */  
    3.     @Override  
    4.     public void onCreate(Bundle savedInstanceState) {  
    5.         super.onCreate(savedInstanceState);  
    6.   
    7.         StandOutWindow.closeAll(this, SimpleWindow.class);  
    8.         StandOutWindow.closeAll(this, MultiWindow.class);  
    9.         StandOutWindow.closeAll(this, WidgetsWindow.class);  
    10.   
    11.         // show a MultiWindow, SimpleWindow  
    12.   
    13.         StandOutWindow  
    14.                 .show(this, SimpleWindow.class, StandOutWindow.DEFAULT_ID);  
    15.         StandOutWindow.show(this, MultiWindow.class, StandOutWindow.DEFAULT_ID);  
    16.         StandOutWindow.show(this, WidgetsWindow.class,  
    17.                 StandOutWindow.DEFAULT_ID);  
    18.   
    19.         // show a MostBasicWindow. It is commented out because it does not  
    20.         // support closing.  
    21.   
    22.         /*  
    23.          * StandOutWindow.show(this, StandOutMostBasicWindow.class,  
    24.          * StandOutWindow.DEFAULT_ID);  
    25.          */  
    26.   
    27.         finish();  
    28.     }  
    29. }  
    [html] view plaincopy
     
    1. public class MostBasicWindow extends StandOutWindow {  
    2.   
    3.     @Override  
    4.     public String getAppName() {  
    5.         return "MostBasicWindow";  
    6.     }  
    7.   
    8.     @Override  
    9.     public int getAppIcon() {  
    10.         return android.R.drawable.btn_star;  
    11.     }  
    12.   
    13.     @Override  
    14.     public void createAndAttachView(int id, FrameLayout frame) {  
    15.         TextView view = new TextView(this);  
    16.         view.setText("MostBasicWindow");  
    17.         view.setBackgroundColor(Color.CYAN);  
    18.   
    19.         frame.addView(view);  
    20.     }  
    21.   
    22.     @Override  
    23.     public StandOutLayoutParams getParams(int id, Window window) {  
    24.         return new StandOutLayoutParams(id, 200, 150, 100, 100);  
    25.     }  
    26. }  

    其它的同上!

    源码简单实用!

  • 相关阅读:
    ASP.NET Core管道详解[4]: 中间件委托链
    从执行上下文角度重新理解.NET(Core)的多线程编程[3]:安全上下文
    从执行上下文角度重新理解.NET(Core)的多线程编程[2]:同步上下文
    从执行上下文角度重新理解.NET(Core)的多线程编程[1]:基于调用链的”参数”传递
    ASP.NET Core管道详解[3]: Pipeline = IServer + IHttpApplication
    ASP.NET Core管道详解[2]: HttpContext本质论
    ASP.NET Core应用基本编程模式[5]:如何放置你的初始化代码
    如何实现Http请求报头的自动转发[设计篇]
    如何实现Http请求报头的自动转发[应用篇]
    采用”传统”方式获取当前HttpContext
  • 原文地址:https://www.cnblogs.com/weixiao870428/p/3524030.html
Copyright © 2011-2022 走看看