android实现uc和墨迹天气那样的左右拖动效果Word文件下载.docx
- 文档编号:19742607
- 上传时间:2023-01-09
- 格式:DOCX
- 页数:23
- 大小:20.66KB
android实现uc和墨迹天气那样的左右拖动效果Word文件下载.docx
《android实现uc和墨迹天气那样的左右拖动效果Word文件下载.docx》由会员分享,可在线阅读,更多相关《android实现uc和墨迹天气那样的左右拖动效果Word文件下载.docx(23页珍藏版)》请在冰豆网上搜索。
privatefinalintcolor_yellow=Color.argb(100,200,200,0);
privatefinalintcolor_purple=Color.argb(100,200,0,200);
privatefinalString[]mLabelArray={"
View1"
"
View2"
View3"
View4"
View5"
};
privatefinalint[]mColorArray={color_red,color_green,color_blue,color_yellow,color_purple};
privateFlingGallerymGallery;
privateCheckBoxmCheckBox;
//Note:
Thefollowinghandleriscriticaltocorrectfunctionof
//theFlingGalleryclass.ThisenablestheFlingGalleryclassto
//detectwhenthemotioneventhasendedbyfingerbeinglifted
@Override
publicbooleanonTouchEvent(MotionEventevent)
{
returnmGallery.onGalleryTouchEvent(event);
}
publicvoidonCreate(BundlesavedInstanceState)
super.onCreate(savedInstanceState);
mGallery=newFlingGallery(this);
mGallery.setPaddingWidth(5);
mGallery.setAdapter(newArrayAdapter<
String>
(getApplicationContext(),android.R.layout.simple_list_item_1,mLabelArray)
@Override
publicViewgetView(intposition,ViewconvertView,ViewGroupparent)
{
Log.d("
111"
count="
+position);
//if(convertView!
=null&
&
convertViewinstanceofGalleryViewItem)
//{
//GalleryViewItemgalleryView=(GalleryViewItem)convertView;
//
//galleryView.mEdit1.setText("
"
);
//galleryView.mText1.setText(mLabelArray[position]);
//galleryView.mText1.setBackgroundColor(mColorArray[position]);
//galleryView.mText2.setText(mLabelArray[position]);
//galleryView.mText2.setBackgroundColor(mColorArray[position]);
//
//Log.d("
//returngalleryView;
//}
returnnewGalleryViewItem(getApplicationContext(),position);
}
});
LinearLayoutlayout=newLinearLayout(getApplicationContext());
layout.setOrientation(LinearLayout.VERTICAL);
LinearLayout.LayoutParamslayoutParams=newLinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT);
layoutParams.setMargins(10,10,10,10);
layoutParams.weight=1.0f;
layout.addView(mGallery,layoutParams);
mCheckBox=newCheckBox(getApplicationContext());
mCheckBox.setText("
GalleryisCircular"
mCheckBox.setPadding(50,10,0,10);
mCheckBox.setTextSize(30);
mCheckBox.setChecked(true);
mCheckBox.setOnClickListener(newOnClickListener()
@Override
publicvoidonClick(Viewview)
{
mGallery.setIsGalleryCircular(mCheckBox.isChecked());
}
layout.addView(mCheckBox,newLinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT));
setContentView(layout);
}
privateclassGalleryViewItemextendsTableLayout
privateEditTextmEdit1;
privateTextViewmText1;
privateTextViewmText2;
privateButtonmButton1;
privateButtonmButton2;
publicGalleryViewItem(Contextcontext,intposition)
super(context);
this.setOrientation(LinearLayout.VERTICAL);
this.setLayoutParams(newLinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT));
mEdit1=newEditText(context);
this.addView(mEdit1,newLinearLayout.LayoutParams(
mText1=newTextView(context);
mText1.setText(mLabelArray[position]);
mText1.setTextSize(30);
mText1.setGravity(Gravity.LEFT);
mText1.setBackgroundColor(mColorArray[position]);
this.addView(mText1,newLinearLayout.LayoutParams(
mButton1=newButton(context);
mButton1.setText("
<
mButton1.setGravity(Gravity.LEFT);
mButton1.setOnClickListener(newOnClickListener()
@Override
publicvoidonClick(Viewview)
{
mGallery.movePrevious();
}
this.addView(mButton1,newLinearLayout.LayoutParams(
mButton2=newButton(context);
mButton2.setText("
>
mButton2.setGravity(Gravity.RIGHT);
mButton2.setOnClickListener(newOnClickListener()
mGallery.moveNext();
this.addView(mButton2,newLinearLayout.LayoutParams(
mText2=newTextView(context);
mText2.setText(mLabelArray[position]);
mText2.setTextSize(30);
mText2.setGravity(Gravity.RIGHT);
mText2.setBackgroundColor(mColorArray[position]);
this.addView(mText2,newLinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,1));
}
[代码]FlingGallery
importandroid.view.GestureDetector;
importandroid.view.KeyEvent;
importandroid.view.animation.Animation;
importandroid.view.animation.AnimationUtils;
importandroid.view.animation.Interpolator;
importandroid.view.animation.Transformation;
importandroid.widget.Adapter;
importandroid.widget.FrameLayout;
//TODO:
//1.InordertoimproveperformanceCachescreenbitmapanduseforanimation
//2.Establishsuperfluousmemoryallocationsanddelayorreplacewithreusedobjects
//Probablyneedtomakesurewearenotallocatingobjects(strings,etc.)inloops
publicclassFlingGalleryextendsFrameLayout
//Constants
privatefinalintswipe_min_distance=120;
privatefinalintswipe_max_off_path=250;
privatefinalintswipe_threshold_veloicty=400;
//Properties
privateintmViewPaddingWidth=0;
privateintmAnimationDuration=250;
privatefloatmSnapBorderRatio=0.5f;
privatebooleanmIsGalleryCircular=true;
//Members
privateintmGalleryWidth=0;
privatebooleanmIsTouched=false;
privatebooleanmIsDragging=false;
privatefloatmCurrentOffset=0.0f;
privatelongmScrollTimestamp=0;
privateintmFlingDirection=0;
privateintmCurrentPosition=0;
privateintmCurrentViewNumber=0;
privateContextmContext;
privateAdaptermAdapter;
privateFlingGalleryView[]mViews;
privateFlingGalleryAnimationmAnimation;
privateGestureDetectormGestureDetector;
privateInterpolatormDecelerateInterpolater;
publicFlingGallery(Contextcontext)
super(context);
mContext=context;
mAdapter=null;
mViews=newFlingGalleryView[3];
mViews[0]=newFlingGalleryView(0,this);
mViews[1]=newFlingGalleryView(1,this);
mViews[2]=newFlingGalleryView(2,this);
mAnimation=newFlingGalleryAnimation();
mGestureDetector=newGestureDetector(newFlingGestureDetector());
mDecelerateInterpolater=AnimationUtils.loadInterpolator(mContext,android.R.anim.decelerate_interpolator);
publicvoidsetPaddingWidth(intviewPaddingWidth)
mViewPaddingWidth=viewPaddingWidth;
publicvoidsetAnimationDuration(intanimationDuration)
mAnimationDuration=animationDuration;
publicvoidsetSnapBorderRatio(floatsnapBorderRatio)
mSnapBorderRatio=snapBorderRatio;
publicvoidsetIsGalleryCircular(booleanisGalleryCircular)
if(mIsGalleryCircular!
=isGalleryCircular)
mIsGalleryCircular=isGalleryCircular;
if(mCurrentPosition==getFirstPosition())
//Weneedtoreloadtheviewimmediatelytothelefttochangeittocircularvieworblank
mViews[getPrevViewNumber(mCurrentViewNumber)].recycleView(getPrevPosition(mCurrentPosition));
if(mCurrentPosition==getLastPosition())
//Weneedtoreloadtheviewimmediatelytotherighttochangeittocircularvieworblank
mViews[getNextViewNumber(mCurrentViewNumber)].recycleView(getNextPosition(mCurrentPosition));
publicintgetGalleryCount()
return(mAdapter==null)?
0:
mAdapter.getCount();
publicintgetFirstPosition()
return0;
publicintgetLastPosition()
return(getGalleryCount()==0)?
getGalleryCount()-1;
privateintgetPrevPosition(intrelativePosition)
intprevPosition=relativePosition-1;
if(prevPosition<
getFirstPosition())
prevPosition=getFirstPosition()-1;
if(mIsGalleryCircular==true)
prevPosition=getLastPosition();
returnprevPosition;
privateintgetNextPosition(intrelativePosition)
intnextPosition=relativePosition+1;
if(nextPosition>
getLastPosition())
nextPosition=getLastPosition()+1;
nextPosition=getFirstPosition();
returnnextPosition;
privateintgetPrevViewNumber(intrelativeViewNumber)
return(relativeViewNumber==0)?
2:
relativeViewNumber-1;
privateintgetNextViewNumber(intrelativeViewNumber)
return
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- android 实现 uc 墨迹 天气 那样 左右 拖动 效果