Tag: android animation

缩放根视图后,子视图不可单击

我正在缩放rootView ,它是rootView fragment的LinearLayout ,但子视图不可clickable 。 这是rootView public class CarouselLinearLayout extends LinearLayout { private float scale = CarouselPagerAdapter.BIG_SCALE; public CarouselLinearLayout(Context context, AttributeSet attrs) { super(context, attrs); } public CarouselLinearLayout(Context context) { super(context); } public void setScaleBoth(float scale) { this.scale = scale; this.invalidate(); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); // The main mechanism to display […]

overridePendingTransition仅显示输入动画

当用户更改语言区域设置时,我想使用新的区域设置重新加载活动。 我想在完成活动并再次启动时创建一个动画过渡。 过渡动画如下: 退出动画是将活动缩放到屏幕中心。 输入动画是从屏幕中心缩放活动。 finish(); overridePendingTransition(0, R.anim.scale_to_center); Intent intent =new Intent(SettingsActivity.this, SettingsActivity.class); startActivity(intent); overridePendingTransition(R.anim.scale_from_center, 0); 我的scale_to_center.xml是: 我的scale_from_center.xml是: 问题是只出现输入转换并且不显示退出转换。 我试图在退出转换中添加延迟,但它也不起作用。 但是,当我将代码更改为仅为应用程序的退出设置动画时。 有效。 finish(); overridePendingTransition(0, R.anim.scale_to_center); 谢谢。

在Android中,如何在尊重fling引起的加速度的同时实现listview的捕捉效果?

为了演示,我有一个显示数字列表的ListView。 我希望达到这样的效果:当用户滚动ListView并且滚动结束时,它将仅停止在某些位置,以便始终完全显示第一个可见项目。 我在下面附上了我的尝试代码。 当用户拖动滚动ListView时,它可以工作。 但是当它甩动时,正常加速度会中断,导致不自然的停止。 我的问题是,如何在实现相同效果的同时考虑到投掷加速度? package com.example.snaptest; import android.content.Context; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.widget.AbsListView; import android.widget.BaseAdapter; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.TextView; public class MainActivity extends ActionBarActivity { private static class TestListViewAdapter extends BaseAdapter { private Context mContext; public TestListViewAdapter(Context context) { mContext […]

逐个动画RecyclerView项目

我正在尝试在我的应用中为我的RecyclerView项目制作动画。 我尝试在我的适配器中使用此代码: public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position) { myHolder = holder as MyView; if (position > mCurrentPosition) { int currentAnim = Android.Resource.Animation.SlideInLeft; SetAnimation(holder.ItemView, currentAnim); mCurrentPosition = position; } } private void SetAnimation(View view, int currentAnim) { Animation anim = AnimationUtils.LoadAnimation(mContext, currentAnim); anim.SetInterpolator(mContext, Android.Resource.Interpolator.Bounce); view.StartAnimation(anim); } 但是,因为我的所有项目在创建视图时一起显示,而在用户单击按钮时不会添加,例如,所有项目一起动画。 我希望这些项目按照其位置顺序依次制作动画。 这怎么可能呢?

Android中状态栏中的动画

我是Android的新手。 我想在手机中制作电池充电动画 ,例如,在屏幕的右上角,小图标在充电时上下移动并停止当前电池百分比。 到目前为止,在我的代码中,我已经能够让它移动,但它永远不会停止。 我想要的是动画在没有充电时停止或者停在当前的电池百分比上。 这是动画中的代码: public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.batteryinfo); ImageView batteryImage = (ImageView) findViewById(R.id.BatteryImage); batteryImage.setBackgroundResource(R.drawable.ic_battery_animation); BatteryAnimation = (AnimationDrawable) batteryImage.getBackground(); batteryImage.post(new Starter()); textBatteryLevel = (TextView) findViewById(R.id.batterylevel_text); registerBatteryLevelReceiver(); } class Starter implements Runnable { public void run() { BatteryAnimation.start(); } } 到目前为止,我可以获得电池状态,插头类型和电池的运行状况。

如何让圆圈只显示动画一次

我有一个应用程序,显示多个圆圈,动画半径从0到300.我遇到的问题是它显示多个圆圈慢慢增加每个圆的半径。 我只想绘制一个增加半径的圆。 这是我的代码。 public class SplashLaunch extends View{ Handler cool = new Handler(); DrawingView v; Paint newPaint = new Paint(); int randomWidthOne = 0; int randomHeightOne = 0; private float radiusOne = 300; final int redColorOne = Color.RED; final int greenColorOne = Color.GREEN; private static int lastColorOne; ObjectAnimator radiusAnimator; private final Random theRandom = new […]

NineOldAndroids动画无法在API> 10上运行

我正在使用NineOldAndroid库来执行动画。 动画适用于API 10,应用程序强制关闭。 这是我的代码: import static com.nineoldandroids.view.ViewPropertyAnimator.animate; import android.content.Intent; import android.graphics.Canvas; import android.graphics.PixelFormat; import android.os.Build; import android.os.Bundle; import android.view.KeyEvent; import android.view.View; import android.view.ViewTreeObserver.OnGlobalLayoutListener; import android.view.WindowManager; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; import com.actionbarsherlock.app.ActionBar; import com.actionbarsherlock.view.MenuItem; import com.nineoldandroids.animation.Animator; import com.nineoldandroids.animation.Animator.AnimatorListener; import com.nineoldandroids.animation.ObjectAnimator; public class ActivityActualMain extends SherlockActivity { LinearLayout container1, container2; RelativeLayout viewTree; ImageView […]

RippleDrawable – 以编程方式显示波纹效果

我有这样的观点 和ripple.xml一样 一切都很好。 当我触摸视图时,它会给我带来涟漪效应。 我正在寻找的是重复从代码开始视图上的波纹动画。 将其显示为不确定的进展。 波浪一直在荡漾。 就像是 Runnable runnable = new Runnable() { @Override public void run() { RippleDrawable drawable = (RippleDrawable) button.getBackground(); drawable.showRipples(true, true); // <– This is needed handler.postDelayed(runnable, 500); } }; 知道怎么做吗?

Android / Java – 删除顺序加载动画延迟

我有一个android动画,它加载了一系列顺序点(publishProgress)但是它们开始之前有10秒以上的延迟,因为我将它们作为我的AsyncTask的一部分,它在数据处理时加载(技术上 – 两个应该是相关 – 但它在视觉上会导致延迟)如何在课程首次启动时调用此动画? 我需要删除这个可视动画延迟。 资源: public class UpdateActivity extends Activity implements OnClickListener { private TelephonyManager tm; AlertDialog mConfirmAlert = null; NetworkTask task; ImageView image, text; AlertDialog mErrorAlert = null; public static ArrayList NameArr = new ArrayList(); public static ArrayList ValueArr = new ArrayList(); public static ArrayList nameArr = new ArrayList(); public static ArrayList […]

动画后移动imageview(更新位置)

我试图在屏幕底部到中间的图像视图上进行翻译动画。 完成动画后,我希望图像视图保持不变。 我不想要setFillAfter(true),因为我希望更新imageview的实际位置。 我目前通过2个图像视图(一个在动画开始,一个在结尾)来做,我玩setVisibility来实现这一点。 这是正确的做事方式吗? 这是我使用的代码: TranslateAnimation translate = new TranslateAnimation(0, mDestLoc1[0]-mSrcLoc1[0], 0, mDestLoc1[1]-mSrcLoc1[1]); translate.setDuration(2000); translate.setAnimationListener(new AnimationListener(){ @Override public void onAnimationStart(Animation animation) {} @Override public void onAnimationEnd(Animation animation) { ivMiddle.setVisibility(View.VISIBLE) ivStart.setVisibility(View.INVISIBLE) } @Override public void onAnimationRepeat(Animation animation) {} }); ivStart.startAnimation(translate);