- 浏览: 3944370 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
hinuliba:
...
字体背景颜色的高度修改 -
KANGOD:
最后的 -createDialog() 私有方法是怎么回事,没 ...
简单的实现listView中item多个控件以及点击事件 -
sswangqiao:
呵呵,呵呵
onActivityResult传值的使用 -
yumeiqiao:
感觉你所的不清楚 lstView.setOnTouchLi ...
listview中viewflipper的问题 -
lizhou828:
果然是大神啊!!!
Animation动画效果的实现
class PanelSwitcher extends FrameLayout {
private static final int MAJOR_MOVE = 60;
private static final int ANIM_DURATION = 400;
private GestureDetector mGestureDetector;
private int mCurrentView;
private View mChild, mHistoryView;
private View children[];
private int mWidth;
private TranslateAnimation inLeft;
private TranslateAnimation outLeft;
private TranslateAnimation inRight;
private TranslateAnimation outRight;
private static final int NONE = 1;
private static final int LEFT = 2;
private static final int RIGHT = 3;
private int mPreviousMove;
public PanelSwitcher(Context context, AttributeSet attrs) {
super(context, attrs);
mCurrentView = 0;
mGestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() {
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
int dx = (int) (e2.getX() - e1.getX());
// don't accept the fling if it's too short
// as it may conflict with a button push
if (Math.abs(dx) > MAJOR_MOVE && Math.abs(velocityX) > Math.abs(velocityY)) {
if (velocityX > 0) {
moveRight();
} else {
moveLeft();
}
return true;
} else {
return false;
}
}
});
}
@Override
public void onSizeChanged(int w, int h, int oldW, int oldH) {
mWidth = w;
inLeft = new TranslateAnimation(mWidth, 0, 0, 0);
outLeft = new TranslateAnimation(0, -mWidth, 0, 0);
inRight = new TranslateAnimation(-mWidth, 0, 0, 0);
outRight = new TranslateAnimation(0, mWidth, 0, 0);
inLeft.setDuration(ANIM_DURATION);
outLeft.setDuration(ANIM_DURATION);
inRight.setDuration(ANIM_DURATION);
outRight.setDuration(ANIM_DURATION);
}
protected void onFinishInflate() {
int count = getChildCount();
children = new View[count];
for (int i = 0; i < count; ++i) {
children[i] = getChildAt(i);
if (i != mCurrentView) {
children[i].setVisibility(View.GONE);
}
}
}
@Override
public boolean onTouchEvent(MotionEvent event) {
mGestureDetector.onTouchEvent(event);
return true;
}
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
return mGestureDetector.onTouchEvent(event);
}
void moveLeft() {
// <--
if (mCurrentView < children.length - 1 && mPreviousMove != LEFT) {
children[mCurrentView+1].setVisibility(View.VISIBLE);
children[mCurrentView+1].startAnimation(inLeft);
children[mCurrentView].startAnimation(outLeft);
children[mCurrentView].setVisibility(View.GONE);
mCurrentView++;
mPreviousMove = LEFT;
}
}
void moveRight() {
// -->
if (mCurrentView > 0 && mPreviousMove != RIGHT) {
children[mCurrentView-1].setVisibility(View.VISIBLE);
children[mCurrentView-1].startAnimation(inRight);
children[mCurrentView].startAnimation(outRight);
children[mCurrentView].setVisibility(View.GONE);
mCurrentView--;
mPreviousMove = RIGHT;
}
}
int getCurrentIndex() {
return mCurrentView;
}
}
发表评论
-
URI 转path
2019-06-26 10:41 1326转自知乎Matisse package com.zhihu ... -
权限申请
2017-09-22 13:25 1265public class PermissionActivit ... -
onPreviewFrame 相机输出格式转换yuv420p保存成图片
2015-11-25 15:59 7575在最近项目中,因为特殊需要,底层相机往外输出了i420 也 ... -
new Android's Runtime Permission
2015-11-03 21:05 1243targetSdkVersion 23 开始 使用运行时权 ... -
自定义listview 边缘效果
2015-02-28 10:58 1739static void ChangeEdgeEffect( ... -
发射打开wifi
2015-01-07 10:25 1434WifiManager wifiManager = (Wif ... -
RecyclerView
2014-11-05 13:08 1257http://www.grokkingandroid.com ... -
获取点击区域
2014-04-28 09:39 1584@Override public void getHitR ... -
speex 和libogg 编译
2014-04-03 16:17 6405下载: http://www.speex.org/down ... -
rsync 同步
2014-03-28 17:06 1840两台android 设备 进行rsy ... -
流转字符串
2014-03-11 09:49 1534public static String convertSt ... -
java simplexml 序列化
2014-03-06 13:22 5965<?xml version="1.0&quo ... -
获取其他程序的特定资源
2014-03-05 09:33 1691try { PackageManager man ... -
检测来电属于哪个sim卡
2014-02-07 10:41 1724public class IncomingCallInter ... -
使用 NDK r9 编译ffmpeg
2014-01-16 13:32 168441. 环境 ubuntu 我的是13.10 ndk r9 ... -
android h264含so
2014-01-13 11:24 1547http://download.csdn.net/downlo ... -
xml转义字符
2013-12-18 09:29 1595" " ' & ... -
字体背景颜色的高度修改
2013-12-11 10:31 4221当使用android:lineSpacingExtra= ... -
屏保的实现
2013-12-07 10:27 2797最近需要做一个屏保,开始以为很简单,因为系统本身就带了屏保功 ... -
PreferenceActivity下嵌套PreferenceScreen在其它布局中
2013-11-21 16:32 9165今天在修改系统代码的时候,系统代码用了PreferenceA ...
相关推荐
- `z+Enter`:光标所在行移到屏幕第一行。 - `z+-`:光标所在行移到屏幕最后一行。 4. **插入文本** - `i`:在光标前插入。 - `I`:在当前行首插入。 - `a`:在光标后插入。 - `A`:在当前行尾插入。 - `o`...
7. **响应式设计**:Turn.js支持响应式布局,可以根据屏幕大小自动调整书籍的尺寸。通过设置不同的参数和媒体查询,可以使翻书效果在不同设备上都保持良好体验。 8. **优化性能**:对于大型书籍,需要注意性能问题...
此外,还有两张特殊的牌——大小王(Joker),这些图片可用于创建或更新游戏中的视觉元素,确保玩家能够清晰地识别每一张牌。 2. **图像格式与分辨率**:通常,用于游戏的图像需要高质量且文件大小适中,以便快速...
我们可以将计算机搬到一张四周都空荡荡的桌子上,然后进行开机测试。如果屏幕抖动的现象消失,那么说明电脑原来的地方有强电场或强磁场干扰。 4. 清洁显示卡:打开机箱,将显示卡从插槽中拔出来,然后用手将显示卡...
8. **错误处理**:良好的错误处理机制能提升用户体验,例如限制玩家同时只能翻两张牌,防止非法操作。 9. **响应式设计**:为了适应不同设备(手机、平板、电脑),游戏应具备响应式设计,确保在各种屏幕尺寸上都能...
在本文中,我们将深入探讨Turn.js如何实现翻书效果,以及如何让它自适应单双页模式。 首先,Turn.js的核心是通过CSS3的3D变换来模拟书页的翻转。这种技术允许开发者创建高度动态且流畅的动画,同时保持良好的性能。...
- **SpriteSheet**:用于合并多个图像到一张大图,减少网络请求,提高性能。 - **BitmapData** 和 **Graphics**:处理位图数据和绘制2D图形,创建书页效果。 - **Timeline Animation**:通过时间轴控制动画,实现...
1. **准备素材**:首先,你需要两张图片,一张是默认显示的图片,另一张是鼠标悬停时显示的图片。 2. **创建切片**:在Fireworks中打开图片,使用“切片工具”(Slice Tool)选择需要翻转的部分,可以是整个图片,也...
同时,可以添加额外的逻辑来控制图片的切换,比如根据当前显示的图片索引来决定下一张要显示的图片。 4. **动态加载和响应式设计**:对于响应式布局,可能需要使用媒体查询(media queries)来调整图片大小和布局,...
8. **性能优化**:在移动设备上,为了减少内存占用和提高加载速度,可能需要对图片进行压缩,或者使用精灵图(Sprite Sheet)技术将多张牌合并到一张大图中。此外,还可以利用缓存策略,减少不必要的网络请求。 9. ...
本篇将详细介绍如何从任意一张资源图片中读取触点的色值,并展示一个实现简单取色器的Demo。 首先,我们要了解在iOS中处理图像的基本原理。UIKit框架提供了UIImage类,用于加载、显示和操作图像。在读取图像颜色时...
在幻灯片中,这种效果通常体现在切换幻灯片时,当前幻灯片会以3D方式翻转到下一张,营造出动态且引人入胜的过渡效果。 3. **HTML结构**:在实现3D翻转幻灯片时,HTML文件需要包含一系列的幻灯片元素,每个元素代表...
- 使用`RelativeLayout`或`LinearLayout`来组织卡片,确保它们在屏幕上的正确排列。 2. **图片资源管理** - 游戏中的每张卡片通常有两种状态,正面和反面,这需要两套图片资源。在`res/drawable`目录下,应能找到...
对于网页或其他需要滚动截取的长内容,按下F12键,FastStone Capture会自动滚动并拼接截图,形成一张完整的长图片。 该软件还具备编辑功能,允许用户在截图后进行标注和修改。你可以添加文本、箭头、高亮标记,甚至...
3. CSS样式:设置图片容器和图片的样式,确保图片大小与屏幕适应,隐藏除第一张外的其他图片。 4. jQuery代码:编写JavaScript代码,主要包括以下部分: - 初始化:获取所有图片元素,设置初始状态。 - 定时器:...
解决方法是将计算机搬到一张四周都空荡荡的桌子上,然后进行开机测试,如果屏幕抖动的现象消失,那么说明用户的电脑原来的地方有强电场或强磁场干扰,请将可疑的东西(如音箱的低音炮、磁化杯子等)从电脑附近拿手。...
在这个案例中,每一页可能是一张图片,用户可以通过左右滑动查看前一张或后一张图片,实现图片序列的连续浏览。 其次,“中间扩大”是指当图片位于屏幕中央时,它的大小会自动放大,以提供更加聚焦的视觉体验。这种...
这种设计方式不仅美观,而且提供了良好的用户体验,使得查看多张图片变得轻松而直观。 在网页或应用程序开发中,实现横向图片翻页展示模板的关键技术主要包括HTML、CSS和JavaScript。HTML用于结构化内容,CSS负责...
5. **窗口交换:** 调用`glutSwapBuffers`函数进行前后缓冲区交换,确保图像能够在屏幕上正确显示。 #### 进阶技巧: - **像素缩放与翻转:** OpenGL提供了`glPixelZoom`函数用于调整像素图象的显示大小,可以通过...
这些图片通常包含了扑克牌的全部54张,包括52张常规牌(每个花色的A到K各一张,再加上J、Q、K)以及两张特殊的 Joker(大王和小王)。 在编程中,每张扑克牌可以被抽象为一个对象,具有花色(红桃、黑桃、梅花、...