- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 viewflipper,其中有视频和图像。第一次运行时一切正常。在显示最后一个 child 并重复 View 后,在这种情况下,视频不会播放,黑屏仍然存在时间。提前致谢。
我的代码
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.kiosk_mode);
mSelectedPressoId=PreferenceConnector.readString(KioskModeActivity.this, PreferenceConnector.SELECTED_PRESSO_ID, "");
bindControl();
fetchSlidesFromDb();
}
public void bindControl(){
mFlipper=(ViewFlipper)findViewById(R.id.viewflipper);
mParentView=(FrameLayout)findViewById(R.id.parent_background);
mKioskModeIcon=(ImageView)findViewById(R.id.kiosk_mode_icon);
mExitBar=(LinearLayout)findViewById(R.id.exit_bar);
detector = new GestureDetector(new SwipeGestureDetector());
mCounter=new MyCounter(10000, 1000);
mActivePointers = new SparseArray<PointF>();
mKioskModeIcon.setOnClickListener(this);
mHomeIcon=(ImageView)findViewById(R.id.homeIcon);
mHomeIcon.setOnClickListener(this);
mCommonMethod=new CommonMethod(getApplicationContext());
position=new ArrayList<String>();
mTransitionTime=PreferenceConnector.readString(getApplicationContext(), PreferenceConnector.TRANSITION_TIME, "");
Log.v("transition time from prefrence isss",mTransitionTime+">>>");
if(mTransitionTime.equalsIgnoreCase("")){
mFlipper.setFlipInterval(10000);
}else{
int mTransitionTimeInMills=Integer.parseInt(mTransitionTime)*1000;
mFlipper.setFlipInterval(mTransitionTimeInMills);
}
mFlipper.setOutAnimation(AnimationUtils.loadAnimation(
getBaseContext(), R.anim.push_left_out));
mFlipper.setInAnimation(AnimationUtils.loadAnimation(
getBaseContext(), R.anim.push_left_in));
mFlipper.getInAnimation().setAnimationListener(new Animation.AnimationListener() {
public void onAnimationStart(Animation animation) {}
public void onAnimationRepeat(Animation animation) {
Log.d("new view is ",">>>>>>>>>>>>>>>");
}
public void onAnimationEnd(Animation animation) {
mVideoPosition=mFlipper.getDisplayedChild();
Log.d("new view is flipped",mVideoPosition+">>>>>>>>>>>>>>>"+mPressoPathList.get(mVideoPosition));
if(mSlideTypeList.get(mVideoPosition).equalsIgnoreCase("video")){
Log.d("onside iffffff",myVideoView+">>>>>");
myVideoView.start();
}
}
});
mFlipper.startFlipping();
mFlipper.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
detector.onTouchEvent(event);
return true;
}
});
}
public void fetchSlidesFromDb(){
PresentationDatabase databaseClass = new PresentationDatabase(getApplicationContext(), DatabaseUtil.PresenationTable.DATABASE_NAME, null, DatabaseUtil.PresenationTable.DATABASE_VERSION);
SQLiteDatabase db = databaseClass.getReadableDatabase();
mPressoPathList=new ArrayList<String>();
mSlideTypeList=new ArrayList<String>();
String where = DatabaseUtil.PresenationTable.PRESENTATION_ID + "="
+"'"+mSelectedPressoId+"'";
Cursor mCursor=db.query(DatabaseUtil.PresenationTable.TABLE_NAME, null, where,
null, null, null, null);
Log.e("cursor size isssssss",mCursor.getCount()+">>");
if(mCursor.getCount()>0){
mCursor.moveToFirst();
do{
String slide_content_path=mCursor.getString(mCursor.getColumnIndex(DatabaseUtil.PresenationTable.CONTENT_LOCAL_PATH));
String mSlideType=mCursor.getString(mCursor.getColumnIndex(DatabaseUtil.PresenationTable.SLIDE_TYPE));
if(!mSlideType.equalsIgnoreCase("pdf")){
mPressoPathList.add(slide_content_path);
mSlideTypeList.add(mSlideType);
}
}while(mCursor.moveToNext());
}
Log.d("slide path issssssss",mPressoPathList+"");
setFlipperImage(mSlideTypeList, mPressoPathList);
mCursor.close();
db.close();
}
//create view to be put in view flipper
private void setFlipperImage(ArrayList<String>mSlideType,ArrayList<String>mSlidePath) {
int size=mSlideType.size();
for(int i=0;i<size;i++){
if(mSlideType.get(i).equalsIgnoreCase("image")){
ImageView image = new ImageView(getApplicationContext());
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
image.setLayoutParams(layoutParams);
image.setScaleType(ScaleType.FIT_XY);
//image.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
BitmapFactory.Options options=new BitmapFactory.Options();
options.inSampleSize = 2;
bmp = BitmapFactory.decodeFile(mSlidePath.get(i),options);
image.setImageBitmap(bmp);
image.setTag(i);
position.add(i+"");
mFlipper.addView(image);
}else{
myVideoView = new VideoView(this);
myVideoView.setVideoPath(mSlidePath.get(i));
Log.e("my video path isssss",mSlidePath.get(i));
myVideoView.requestFocus();
myVideoView.setLayoutParams(new LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
// l.setBackgroundColor(Color.BLACK);
myVideoView.setKeepScreenOn(true);
mFlipper.addView(myVideoView);
myVideoView.start();
myVideoView.seekTo(500);
myVideoView.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mFlipper.stopFlipping();
}
});
myVideoView.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
// TODO Auto-generated method stub
Log.d("inside oncomplete listner",">>>>>");
myVideoView.stopPlayback();
mVideoPosition=mVideoPosition+1;
mFlipper.setDisplayedChild(mVideoPosition);
mFlipper.startFlipping();
myVideoView.seekTo(500);
}
});
}
//
}
}
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
//do nothing*
}
最佳答案
我通过添加
解决了这个问题myVideoView.start();
进入事件监听器
myVideoView.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mFlipper.stopFlipping();
myVideoView.start();
}
});
关于android - 如何在 viewflipper 中播放视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20973138/
我的 Activity 中有一个 ViewFlipper,用作 ListView 的页脚 View 。不久前,我发布了关于我在模拟器中看到的一个问题。参见 Activity has leaked In
当我将 ViewFlipper 用作 Widget 时,我在 ViewFlipper 中更新 subview 时遇到问题。 这是小部件的布局: 这是 AppWidget
您好,我正在创建如下所示的 ViewFlipper。 并处理像这样的事件 ViewFlipperSampleActivity.java public class ViewFlipperSamp
抱歉我的英语不好。我有一个画廊,当您单击特定图像时,它会出现在屏幕上。当图片占满整个屏幕时,我想做什么,它仍然可以滚动。为此,我使用 ViewFlipper。主要 Activity publi
我已经制作了一个不错的 ViewPager,现在,我希望只要用户在屏幕上双击,底部菜单栏就会出现/消失。我以为这会很容易,但是在阅读了很多论坛并尝试了许多可能的解决方案之后,我不得不承认我无法实现它。
我正在尝试开发一个应用程序,其中包含一个带 View 翻转器的画廊。 图库显示所有图像。我想要做的是, View 翻转器中显示的图像应该在图库中突出显示。 目前我可以在 onClick 上突出显示它。
我有一些基本的动画,当它们用于 Activity 之间的转换时,它们就像一个魅力。 问题是,当我在我的取景器上使用它们时,我看到了非常明显的延迟。这是我的 Activity 中的代码 fragment
我正在尝试像这样进行缩放:zoom the imageview on the double click in viewflipper in android 我尝试将该代码改编为我的项目,但它不起作用.
对不起我的英语。当图片填满屏幕时,我想做的就是可以用来滚动。为此,请使用 ViewFlipper。但它不起作用。是全屏显示图像的类。我做错了什么? public class FullScree
我正在尝试将 viewflipper 集成到已经有抽屉导航的 Activity 中,但 viewflipper 不工作,尽管抽屉导航正在工作。主题是滑动布局并显示数据。下面是我的代码XML:
在我的 Android 应用程序的一个 Activity 中,我有一个 ViewFlipper,里面有 3 个 ImageView,构建如下:
嘿,我查了很多教程和指南,但不知何故找不到... 我需要在我的 Android 应用中包含多张图片。它就像一个图像查看器/幻灯片。目前,我使用 ImageView 和适配器在/drawable-mdp
我想创建一个菜单,它以随机时间间隔在 viewflipper 的 5 个子级之间以随机顺序“翻转”。 我尝试了以下代码,我可以让 System.out.println 显示我的调试消息以随机时间间隔记
我正在使用 ViewFlipper,我的 viewFlipper 工作正常,直到我增加了图片的高度。 它给我 OutOfMemoryError。 这是我的包含 viewFlipper 的 Activi
我在 ViewFlipper 中有一些 ImageView。我想尊重图片的纵横比,这样布局就不会占用所有屏幕。我设置了一个简单的“幻灯片”动画,但 ViewFlipper 总是比里面的图像大一点。这会
我正在开发一个 Android 项目,我在其中使用 ViewFlipper 来翻转 child 。为此,我使用了定制的脚蹼。在此我覆盖了 onTouchEvent() 方法。鳍状肢包含每个 child
我的 xml 布局中有一个包含图像的 ViewFlipper。我想全屏显示这张图片。无论我为图像使用哪种 ScaleType,我都无法让图像全屏显示。 这是我的布局:
对于包含一些图像的取景器,我应该使用什么插值器来查看连续的图像,我的意思是看到图像的结尾向左,图像的开头来自右边? (对不起我的描述,我希望你明白我的意思)。我为 viewflipper 使用动画(向
在我的 Android 项目中,我使用 ViewFlipper 来翻转 child 。为此,我使用了定制的脚蹼。在这里,我重写了 onTouchEvent()。鳍状肢也包含每个 child 的图像。但
我正在使用带有两个 ListView 的 ViewFlipper。在 ViewFlipper 上设置背景可绘制时,“翻转”时执行的动画只渲染前景,背景是黑色的!动画完成后,背景出现。动画 View 的
我是一名优秀的程序员,十分优秀!