はるかに複雑な機能の一部として、画面の特定のポイントで円が不透明になるのを表示する機能に固執しています。
アニメーションコードが次のようなテストプロジェクトを作成するところまで行ってきました。
View mLongPressImage;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mLongPressImage = findViewById(R.id.onPressImage);
findViewById(R.id.button).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
startAnimation(v.getX(), v.getY());
}
});
}
private AlphaAnimation onPressAnimation;
private void startAnimation(final float f, final float g) {
Log.v("", "START");
mLongPressImage.setX(f);
mLongPressImage.setY(g);
onPressAnimation = new AlphaAnimation(0f, 1f);
onPressAnimation.setDuration(1000);
onPressAnimation.setFillAfter(true);
onPressAnimation.setFillEnabled(true);
mLongPressImage.startAnimation(onPressAnimation);
}
ロギングショーの正しいイベントが発生しています。
ビューは次のようになります。
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="PRESS ME" />
<ImageView
android:id="@+id/onPressImage"
android:layout_width="200dp"
android:layout_height="200dp"
android:background="#000000"
android:scaleType="fitXY"
android:src="@drawable/shape_circle_onpress" />
</FrameLayout>
現在、画像は1秒が経過した後の座標に表示されます。
この非常に単純な機能の隠れた欠陥を誰かが指摘できますか?