当我从下到上和从上到下滑动时,我需要从 int Array 中获取图像,然后在 Imageview 中显示。GestureDetector 运行良好,但我想从 int [] 中获取图像,然后在滑动时放入 Imageview 中。例子 :int [] imageBank = new int[] { R.drawable.image0, R.drawable.image1, R.drawable.image2, R.drawable.image3, R.drawable.image4, }; 从上到下滑动,从 [ ] 中获取图像 0,在 Imageview 中显示从上到下滑动,从 [ ] 中获取图像 1,在 Imageview 中显示从下往上滑动,从 [ ] 中获取图像 0,在 Imageview 中显示从下往上滑动,从 [ ] 中获取图像 4,在 Imageview 中显示完成 MainActivityimport android.support.constraint.ConstraintLayout;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.MotionEvent;import android.widget.Button;import android.widget.ImageView;import android.widget.Toast;import driss.moodtracker.R;import driss.moodtracker.component.SwipeGestureDetector;public class MainActivity extends AppCompatActivity {private SwipeGestureDetector gestureDetector;@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); gestureDetector = new SwipeGestureDetector(this); Button button_comment = (Button) findViewById(R.id.button1); Button button_calendar = (Button) findViewById(R.id.button2);}@Overridepublic boolean dispatchTouchEvent(MotionEvent event) { return gestureDetector.onTouchEvent(event);}public void onSwipe(SwipeGestureDetector.SwipeDirection direction) { ImageView imagePic = (ImageView) findViewById(R.id.imageview); ConstraintLayout currentLayout = (ConstraintLayout) findViewById(R.id.main_layout); // ARRAY OF SMILEYS LIST int [] arraySmileys = new int[] { R.drawable.smiley_super_happy, R.drawable.smiley_happy, R.drawable.smiley_normal, R.drawable.smiley_disappointed, R.drawable.smiley_sad, };
2 回答
月关宝盒
TA贡献1772条经验 获得超5个赞
定义一个“计数器”(整数变量)来存储整数数组的索引。现在基于检测到的滑动,如果用户从底部向上滑动,则增加计数器并将索引项的图像设置为您的图像视图,反之亦然。
示例代码:
int counter = 0;
public void swipe() {
switch (direction) {
case LEFT_TO_RIGHT:
message = "Left to right swipe";
break;
case RIGHT_TO_LEFT:
message = "Right to left swipe";
break;
case TOP_TO_BOTTOM:
if(counter > 0) {
counter--;
imagePic.setImageResource(arraySmileys[counter]);
}
break;
case BOTTOM_TO_TOP:
if(counter < arraySmileys.length()) {
counter++;
imagePic.setImageResource(arraySmileys[counter]);
}
break;
}
}
添加回答
举报
0/150
提交
取消