- 浏览: 206960 次
- 性别:
- 来自: 大连
文章分类
- 全部博客 (54)
- java (17)
- hibernate (3)
- javascript (6)
- Ajax (1)
- 插件 (2)
- 数据库 (3)
- html+css+div (5)
- 其他程序 (3)
- 应用技术 (18)
- office (0)
- 小工具 (1)
- 加密解密 (3)
- mac (3)
- 翻译 (1)
- iphone objectc (5)
- iphone (4)
- android (12)
- 圆角 (1)
- layout (2)
- 加密 (1)
- proguard (2)
- Mac 应用技术 系统 工具 (2)
- Mac 应用技术 系统 工具,xcode4 (1)
- 安卓 (6)
- maven (3)
- 高德 (1)
- 地图 (1)
- lrzsz (1)
- rz (1)
- sz (1)
- 脚本 (1)
- linux (1)
- Android Gradle (1)
- Spark (1)
- mongodb (1)
最新评论
-
Jumper_Wu:
想请教个问题:so文件从maven库中拉到AndroidStu ...
在maven android 工程中使用高德地图 -
cuiqi4016:
可不可以把把html模版作为一个单独的文件引入进来,handl ...
Handlebars 的使用 -
lywangbadan:
Handlebars 的使用 -
lituo20:
不错的,以前接触过一点,看了一下,恍然大悟,好像一下子懂了
Handlebars 的使用 -
zhangyaochun:
其实就是模板化,这是以前就开始推崇的面向数据编程的一个方式。比 ...
Handlebars 的使用
public class ActionSheet implements OnClickListener {
private Context context;
private LinearLayout layout;
private View actionsheetView;
private TextView title;
private Button deleteButton, cancelButton;
private ActionSheetButtonClickListener aslistener;
/**
* This creates a ActionSheet
* @param context
* @param layout
*/
public ActionSheet(Context context, LinearLayout layout) {
this.context = context;
this.layout = layout;
init();
}
private void init() {
LayoutInflater inflater = (LayoutInflater) this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
this.actionsheetView = inflater.inflate(R.layout.action_sheet, null);
this.deleteButton = (Button) this.actionsheetView.findViewById(R.id.action_sheet_delete);
this.cancelButton = (Button) this.actionsheetView.findViewById(R.id.action_sheet_cancel);
this.title = (TextView) this.actionsheetView.findViewById(R.id.action_sheet_title);
}
/**
* This
* @param listener
*/
public void setOnButtonClickListener(ActionSheetButtonClickListener listener) {
this.aslistener = listener;
}
/**
* This action sheet
* @param title
*/
public void show(String title) {
this.title.setText(title);
WindowManager.LayoutParams lp = new WindowManager.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.TYPE_APPLICATION, WindowManager.LayoutParams.FLAG_FULLSCREEN | WindowManager.LayoutParams.FLAG_BLUR_BEHIND,
PixelFormat.TRANSLUCENT);
this.deleteButton.setOnClickListener(this);
this.cancelButton.setOnClickListener(this);
this.actionsheetView.setSoundEffectsEnabled(false);
this.actionsheetView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
hide();
}
});
this.layout.addView(this.actionsheetView, lp);
Animation animIn = AnimationUtils.loadAnimation(this.context, R.anim.push_up_in);
animIn.setDuration(200);
animIn.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
Activity parent = (Activity) ActionSheet.this.context;
// using the activity, get Window reference
// Window window = parent.getWindow();
parent.getWindow().addFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
parent.getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND, WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
TransitionDrawable transition = (TransitionDrawable) ActionSheet.this.actionsheetView.getBackground();
transition.startTransition(100);
}
});
this.actionsheetView.setAnimation(animIn);
this.layout.bringChildToFront(this.actionsheetView);
}
/**
* This hide action sheet
*/
public void hide() {
Animation animOut = AnimationUtils.loadAnimation(this.context, R.anim.push_down_out);
animOut.setDuration(200);
animOut.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
TransitionDrawable transition = (TransitionDrawable) ActionSheet.this.actionsheetView.getBackground();
transition.resetTransition();
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
ActionSheet.this.layout.removeView(ActionSheet.this.actionsheetView);
}
});
this.actionsheetView.setAnimation(animOut);
this.actionsheetView.startAnimation(animOut);
}
/**
* {@inheritDoc}
* @see android.view.View.OnClickListener#onClick(android.view.View)
*/
@Override
public void onClick(View v) {
if (v.getId() == R.id.action_sheet_delete) {
this.aslistener.onButtonClick(this, 0);
} else {
this.aslistener.onButtonClick(this, 1);
}
}
}
public interface ActionSheetButtonClickListener {
/**
* This actionsheet button call back
* @param index
*/
public void onButtonClick(ActionSheet actionsheet, int index);
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:background="@drawable/action_sheet_background"
android:gravity="bottom"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:background="@drawable/action_sheet_bg"
android:gravity="center_horizontal"
android:orientation="vertical" >
<TextView
android:id="@+id/action_sheet_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="25dp"
android:textColor="@color/white"
android:textSize="20dp" />
<Button
android:id="@+id/action_sheet_delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:background="@drawable/action_sheet_delete_button"
android:text="@string/fav_action_sheet_delete"
android:textColor="@color/black"
android:textSize="20dp" />
<Button
android:id="@+id/action_sheet_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:background="@drawable/action_sheet_cancel_button"
android:text="@string/cancel"
android:textColor="@color/white"
android:textSize="20dp" />
</LinearLayout>
</LinearLayout>
action_sheet_bg
<?xml version="1.0" encoding="utf-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- The drawables used here can be solid colors, gradients, shapes, images, etc. -->
<item android:drawable="@android:color/transparent"/>
<item android:drawable="@color/action_sheet_background"/>
</transition>
action_sheet_cancel_button
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/action_sheet_delete_clicked" android:state_pressed="true"/> <!-- pressed -->
<item android:drawable="@drawable/action_sheet_delete_clicked" android:state_focused="true"/> <!-- focused -->
<item android:drawable="@drawable/action_sheet_delete"/> <!-- default -->
</selector>
action_sheet_delete_button
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/action_sheet_cancel_clicked" android:state_pressed="true"/> <!-- pressed -->
<item android:drawable="@drawable/action_sheet_cancel_clicked" android:state_focused="true"/> <!-- focused -->
<item android:drawable="@drawable/action_sheet_cancel"/> <!-- default -->
</selector>
private Context context;
private LinearLayout layout;
private View actionsheetView;
private TextView title;
private Button deleteButton, cancelButton;
private ActionSheetButtonClickListener aslistener;
/**
* This creates a ActionSheet
* @param context
* @param layout
*/
public ActionSheet(Context context, LinearLayout layout) {
this.context = context;
this.layout = layout;
init();
}
private void init() {
LayoutInflater inflater = (LayoutInflater) this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
this.actionsheetView = inflater.inflate(R.layout.action_sheet, null);
this.deleteButton = (Button) this.actionsheetView.findViewById(R.id.action_sheet_delete);
this.cancelButton = (Button) this.actionsheetView.findViewById(R.id.action_sheet_cancel);
this.title = (TextView) this.actionsheetView.findViewById(R.id.action_sheet_title);
}
/**
* This
* @param listener
*/
public void setOnButtonClickListener(ActionSheetButtonClickListener listener) {
this.aslistener = listener;
}
/**
* This action sheet
* @param title
*/
public void show(String title) {
this.title.setText(title);
WindowManager.LayoutParams lp = new WindowManager.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.TYPE_APPLICATION, WindowManager.LayoutParams.FLAG_FULLSCREEN | WindowManager.LayoutParams.FLAG_BLUR_BEHIND,
PixelFormat.TRANSLUCENT);
this.deleteButton.setOnClickListener(this);
this.cancelButton.setOnClickListener(this);
this.actionsheetView.setSoundEffectsEnabled(false);
this.actionsheetView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
hide();
}
});
this.layout.addView(this.actionsheetView, lp);
Animation animIn = AnimationUtils.loadAnimation(this.context, R.anim.push_up_in);
animIn.setDuration(200);
animIn.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
Activity parent = (Activity) ActionSheet.this.context;
// using the activity, get Window reference
// Window window = parent.getWindow();
parent.getWindow().addFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
parent.getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND, WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
TransitionDrawable transition = (TransitionDrawable) ActionSheet.this.actionsheetView.getBackground();
transition.startTransition(100);
}
});
this.actionsheetView.setAnimation(animIn);
this.layout.bringChildToFront(this.actionsheetView);
}
/**
* This hide action sheet
*/
public void hide() {
Animation animOut = AnimationUtils.loadAnimation(this.context, R.anim.push_down_out);
animOut.setDuration(200);
animOut.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
TransitionDrawable transition = (TransitionDrawable) ActionSheet.this.actionsheetView.getBackground();
transition.resetTransition();
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
ActionSheet.this.layout.removeView(ActionSheet.this.actionsheetView);
}
});
this.actionsheetView.setAnimation(animOut);
this.actionsheetView.startAnimation(animOut);
}
/**
* {@inheritDoc}
* @see android.view.View.OnClickListener#onClick(android.view.View)
*/
@Override
public void onClick(View v) {
if (v.getId() == R.id.action_sheet_delete) {
this.aslistener.onButtonClick(this, 0);
} else {
this.aslistener.onButtonClick(this, 1);
}
}
}
public interface ActionSheetButtonClickListener {
/**
* This actionsheet button call back
* @param index
*/
public void onButtonClick(ActionSheet actionsheet, int index);
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:background="@drawable/action_sheet_background"
android:gravity="bottom"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:background="@drawable/action_sheet_bg"
android:gravity="center_horizontal"
android:orientation="vertical" >
<TextView
android:id="@+id/action_sheet_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="25dp"
android:textColor="@color/white"
android:textSize="20dp" />
<Button
android:id="@+id/action_sheet_delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:background="@drawable/action_sheet_delete_button"
android:text="@string/fav_action_sheet_delete"
android:textColor="@color/black"
android:textSize="20dp" />
<Button
android:id="@+id/action_sheet_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:background="@drawable/action_sheet_cancel_button"
android:text="@string/cancel"
android:textColor="@color/white"
android:textSize="20dp" />
</LinearLayout>
</LinearLayout>
action_sheet_bg
<?xml version="1.0" encoding="utf-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- The drawables used here can be solid colors, gradients, shapes, images, etc. -->
<item android:drawable="@android:color/transparent"/>
<item android:drawable="@color/action_sheet_background"/>
</transition>
action_sheet_cancel_button
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/action_sheet_delete_clicked" android:state_pressed="true"/> <!-- pressed -->
<item android:drawable="@drawable/action_sheet_delete_clicked" android:state_focused="true"/> <!-- focused -->
<item android:drawable="@drawable/action_sheet_delete"/> <!-- default -->
</selector>
action_sheet_delete_button
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/action_sheet_cancel_clicked" android:state_pressed="true"/> <!-- pressed -->
<item android:drawable="@drawable/action_sheet_cancel_clicked" android:state_focused="true"/> <!-- focused -->
<item android:drawable="@drawable/action_sheet_cancel"/> <!-- default -->
</selector>
发表评论
-
Spark 连接 MongoDB
2018-03-07 09:55 3345Spark 连接 Mongodb 官方地址:https://w ... -
解决android4.0系统中菜单(Menu)添加Icon无效问题
2016-02-16 16:23 992android actionbar menu 显示icon默认 ... -
mac 系统安装rz sz
2015-06-30 11:36 120961.先安装item2,item2 市类似mac风格的终端 ... -
ListView 中嵌套GridView listview item 不能点击问题
2015-03-12 23:28 2100在ListView的item中有GridView,抢占焦点的情 ... -
android 手机传感器
2014-02-18 14:31 1483List<Sensor> sensors = th ... -
android regex utils
2013-12-31 22:43 0public class RegexUtils { pub ... -
Proguard on MacOSX
2013-10-26 23:33 1219[proguard] Error: Can't read [/ ... -
android 自定义progressbar style
2013-09-05 11:22 2724<layer-list xmlns:android=&q ... -
android ADT 17 can not find aapt when build with maven
2013-05-20 23:37 2271更新android adt 版本17之后,程序不能build了 ... -
在maven android 工程中使用高德地图
2013-04-11 21:35 4512由于程序中使用地图,最终选择了高德地图。但是高德地图中需要使用 ... -
android 代码proguard
2013-03-17 13:22 3206大家都知道,java 代码很容易被反编译,同样android ... -
Struts 标签实现时间下来选择
2012-09-13 11:58 1370<select id="min" ... -
MapMarkerExample
2012-04-21 01:21 1334This example show you how to dr ... -
Web browser hacks, Css hacks - ie, firefox, chrome, safri, Opera
2013-04-11 21:35 1141CSS hacks take advantage of bro ... -
Xcode 4 更改下载组件的appleId
2012-04-13 16:40 2490You can change the Apple Develo ... -
Handlebars 的使用
2012-03-31 01:12 33700web 开发中,js 解析JSON 是经常的事情。非常繁琐。h ... -
使用CSS实现间隔线|(竖线)
2012-04-13 16:40 2167是不是考虑用这个? <a href="#&qu ... -
[WARN]Warning: Multiple build commands for output file /
2011-12-13 11:48 9944xcode中 有时候会报一个警告: [WARN]Warning ... -
xcode missing file xxxx
2011-12-13 11:44 4881搞过iphone开发的应该都知道,如果你在finder中删除了 ... -
android 程序 发布加密
2011-12-01 13:37 3255大家都知道,现在java程序很容易就让别人反编译,andori ...
相关推荐
本文将详细探讨如何在Android应用中实现仿iPhone状态栏的技巧和方法,以及涉及到的相关技术。 首先,我们需要理解Android状态栏的基本结构和功能。在Android系统中,状态栏位于屏幕顶部,显示着网络连接、电量、...
"仿iPhone软键盘输入文本框"是一个利用jQuery和CSS3技术实现的网页组件,它旨在为用户在桌面浏览器上提供与iPhone硬件键盘类似的输入体验。这个组件对于那些在非移动设备上也需要模拟移动设备输入场景的应用或网站...
【安卓仿iPhone桌面】是一款专为Android用户设计的应用程序,旨在为用户提供与iPhone 5相似的桌面体验。这款软件——Fake iPhone 5 v1.2 汉化版,是针对中国用户特别优化的,使其界面语言变为中文,使得国内用户能够...
--- games.zipHTML5小游戏【iphone桌面图标,仿iphone桌面】游戏源码分享下载 --- games.zipHTML5小游戏【iphone桌面图标,仿iphone桌面】游戏源码分享下载 --- games.zipHTML5小游戏【iphone桌面图标,仿iphone桌面...
仿iPhone/iPod动态图片浏览器 仿iPhone/iPod动态图片浏览器 仿iPhone/iPod动态图片浏览器
"仿iPhone左右滑动开关"是一种常见的UI组件,模仿了苹果设备上的滑动开关设计,这种开关通常用于开启或关闭某个功能。在这个控件中,用户可以通过简单的左右滑动手势来切换开关状态,其外观和交互都与真实的iPhone...
在本文中,我们将深入探讨如何在Windows Presentation Foundation (WPF) 中实现仿iPhone桌面的翻页效果。这个项目的核心目标是为用户提供一个类似iPhone主屏幕的用户体验,包括平滑的翻页动画以及在不满足翻页条件时...
仿iphone桌面拖动排序 仿苹果桌面 仿iphone ios桌面 launcher 本人见市场上很少仿排序拖拉这样的算法。所以改android源码。供大家学习使用哦。 这是android仿ios桌面的应用,支持拖动排序。 高仿iphone桌面,排列...
android 仿iphone 时钟 clock
【标题】"仿iPhone手机网站"所指的是一种专门设计用于模拟iPhone设备界面和用户体验的网页设计。这种设计通常应用于在线商店或者产品展示网站,旨在为用户带来接近于在iPhone上浏览和操作的真实感,提升用户的浏览...
本文将详细讲解如何在Android中实现"仿iPhone底部弹出菜单"。 1. **自定义布局设计** - 首先,创建一个包含多个菜单项的布局文件。每个菜单项通常是一个`LinearLayout`或`CardView`,包含一个图标和一个文字描述。...
现在我们将深入探讨如何在Android平台上实现一个仿iPhone时间滑轮的功能。 首先,我们要理解"滑轮"(WheelView)的基本概念。滑轮通常是一个垂直滚动的列表,显示一系列连续或离散的数据项,用户可以通过上下滚动来...
这是一款android实现的仿iphone Launcher 桌面
在Android平台上,开发一款应用来高仿iPhone的锁屏界面是一项技术挑战,涉及到对用户界面设计、触摸事件处理、动画效果以及系统级别的交互理解。在这个项目中,开发者将深入研究Android系统的UI框架,并模仿iPhone...
在IT行业中,创建类似iPhone的滑动界面是许多开发者追求的目标,特别是在网页设计领域。"jQuery iPhone UI"是一个专门用于构建具有苹果设备风格用户界面的jQuery插件。这个工具允许开发者轻松地为他们的网站添加iOS...
本项目标题"Android-安卓仿iPhone控制中心上划出现控制中心工具栏"正是针对这一需求,旨在创建一个自定义的Android组件,模拟iOS系统的控制中心行为。 首先,我们需要理解Android的触摸事件处理机制。在Android中,...
Android 源码高仿IPhone锁屏.zip项目安卓应用源码下载Android 源码高仿IPhone锁屏.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术参考
"Android仿iphone-气泡短信-DEMO.zip" 这个标题表明这是一个针对Android平台的开发项目,其目标是模仿iPhone的气泡短信效果。气泡短信是iOS系统中一种常见的对话界面设计,以气泡的形式展示聊天内容,使用户在视觉上...
在iOS开发领域,仿iPhone通讯录源码是一个常见的学习资源,尤其对于初学者而言,它可以帮助理解并掌握iOS应用的基本架构、数据管理以及用户界面设计。这个源码项目旨在模仿苹果设备上的原生通讯录应用,提供类似的...
以下将详细介绍C#计时器的基本使用方法、如何实现计时器的部分功能以及如何在此基础上进行扩展以达到仿iPhone计时器的效果。 一、C#计时器组件介绍 1. System.Timers.Timer:适用于多线程环境,它的Elapsed事件在...