我在ViewFlipper上使用GestureDetector来实现showPrevious和showNext.一切都好.但是,我希望ViewFlipper动画能够立即跟随手指手势,而不是手势完成后.有什么建议吗?
我希望能够更新ViewFlipper的每个子节点的高度.这是可能的,因为我永远找不到ViewFlipper的任何API文档并更新高度或宽度.
我正在为Android 3.0平板电脑开发电子书阅读器应用程序.首先,我有一大块String数据.我想根据设备的屏幕大小将该字符串拆分/拆分为页面[我打算使用文本切换器或查看翻板].虽然我尝试使用getWindowManager()方法,但我无法获得首选结果.
在下面的线程中提到Text Switcher会根据屏幕大小自动中断文本.但是我不这么认为. 在Android应用程序中管理文本,就像在电子书中一样
这是我使用的逻辑:
// retreiving the flipper
flipper = (ViewFlipper) findViewById(R.id.new_view_flipper);
// obtaining screen dimensions
Display display = getWindowManager().getDefaultDisplay();
int screenWidth = display.getWidth();
int screenHeight = display.getHeight();
// contentString is the whole string of the book
while (contentString != null && contentString.length() != 0)
{
totalPages ++;
// creating new textviews for every page
TextView contentTextView = new TextView(this);
contentTextView.setWidth(ViewGroup.LayoutParams.FILL_PARENT);
contentTextView.setHeight(ViewGroup.LayoutParams.FILL_PARENT);
contentTextView.setMaxHeight(screenHeight);
contentTextView.setMaxWidth(screenWidth);
float textSize = contentTextView.getTextSize();
Paint paint = new Paint();
paint.setTextSize(textSize);
int numChars = 0; …Run Code Online (Sandbox Code Playgroud) 我有ViewFlipper不同的看法.当我的活动开始时,我希望第一个视图突然出现,并在3秒后(翻转时间)动画到下一个视图.这是我的代码:
vf.setOutAnimation(animFlipOutNext);
vf.setInAnimation(animFlipInNext);
vf.startFlipping();
populate();
Run Code Online (Sandbox Code Playgroud)
其中vf是ViewFlipper,而populate()方法是我将所有视图添加到的方法ViewFlipper.我的问题是我的动画从第一个视图开始,而不是从第一个开始.我不知道我应该在哪里设置动画以ViewFlipper使我的动画不能从第一个视图开始.谁能帮我?
第一个视图如下所示:enter_image_description http://i43.tinypic.com/350nmdu.png 我在第一次查看之前有一个黑屏(背景颜色).
提前致谢!
我正在考虑将ViewFlipper用于像Activity这样的向导.但我发现这种方法存在一个问题.后退按钮.返回按钮是否会返回到上次显示的活动,或者Viewflipper会以某种方式捕获后退按钮事件并仅更改为上次显示的活动吗?
我怀疑ViewFlipper被视为BackStack上的一个Activity,因此似乎是向导的错误方法.它是否正确?
我正在通过Web服务解析数据.我希望水平翻转而不是垂直翻转.这是一个使用ViewFlipper的教程,但它适用于静态数据.
这是我们的代码,我们需要在两个活动之间翻转:
Splash.java
public class Splash extends Activity{
/** Called when the activity is first created. */
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
startActivity(new Intent(Splash.this, MainMenu.class));
Splash.this.finish();
}
}
Run Code Online (Sandbox Code Playgroud)
Splash.xml
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/splash">
</AbsoluteLayout>
Run Code Online (Sandbox Code Playgroud)
Menu.java
public class Menu extends Activity{
/** Called when the activity is first created. */
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.menu);
}
}
Run Code Online (Sandbox Code Playgroud)
menu.xml文件
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/menu">
</AbsoluteLayout>
Run Code Online (Sandbox Code Playgroud) 在我的Android应用程序中,我正在使用两个活动,我想在这些活动之间顺利切换.我看过许多参考教程告诉我,ViewFlipper可以在一个活动中的视图之间平滑切换.所以我想知道我是否可以使用ViewFlipper在活动之间切换,或者是否有其他可能的方法来执行此操作.目前我只是使用按钮点击来启动活动但开关看起来不太好.
我会很感激任何建议.
谢谢,
Baluk
我有一个ViewFlipper应该对一个投掷手势作出反应,但事实并非如此.
活动
@Override
public void onCreate(Bundle savedInstanceState) {
...
listView = this.getListView();
detector = new GestureDetector(this, new FlingGestureListener(listView));
...
}
Run Code Online (Sandbox Code Playgroud)
FlingGestureListener
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
int pos = source.pointToPosition(Math.round(e1.getX()), Math.round(e1.getY()));
View v = source.getChildAt(pos - source.getFirstVisiblePosition());
System.out.println("fling: x=" + velocityX + " y=" + velocityY);
try {
IFlingable flingable = (IFlingable) v;
if(velocityY > -200 && velocityY < 200) {
if(velocityX < 0)
flingable.fling(IFlingable.RIGHT_TO_LEFT);
else if(velocityX > 0)
flingable.fling(IFlingable.LEFT_TO_RIGHT);
}
} catch(Exception e) …Run Code Online (Sandbox Code Playgroud) 我有八个视图鳍状肢,有4个问题和4个答案.只要单击特定的viewflipper,就会显示那些问题和答案.我的问题是,当第一次点击任何viewflipper时,当时无事可做,并且在点击viewflipper之后,下一个单击的viewflipper值想要检查哪个是相同的(相等).(如果Question是5 + 3那么答案应该是8).
条件:
如果我是第一次点击Q然后下次点击有Q的另一个viewflipper没有必要检查操作,没有任何隐藏.
如果我是第一次点击Q然后下次A点击Q的textview的reive值并检查它是否正确,如果它是正确隐藏Q和A.
如果我是第一次点击A然后下次Q点击A的textview的反向值并检查它是否正确,如果它是正确隐藏Q和A.
如果我是第一次点击A然后下次另一个点击了a的viewflipper没有任何检查操作是必要的,没有任何隐藏.
如果我第一次点击Q然后下次点击有Q的相同viewflipper没有任何检查操作是必要的隐藏.
如果我是第一次点击A然后下次相同的viewflipper点击A没有任何检查操作是必要的隐藏.
那么,如何检查当前可点击的ViewFlipper和之前点击的ViewFlipper.我不知道如何检查问题.
我想,看看这个,我的问题就更清楚了.

编辑:12月16日
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.vf1:
try {
if (click) {
Message msg = new Message();
msg.what = 1;
delayHandler.sendMessageDelayed(msg, DELAYTIME);
vFilpper1.showNext();
} catch (Exception e) {
e.printStackTrace();
}
counter++;
break;
case R.id.vf2:
try {
Message msg = new Message();
msg.what = 2;
delayHandler.sendMessageDelayed(msg, DELAYTIME);
Log.d("viewfilpper", "VFlipper 2");
vFilpper2.showNext();
} catch (Exception e) {
e.printStackTrace();
}
break;
case R.id.vf3:
try { …Run Code Online (Sandbox Code Playgroud) 是否可以将a ViewFlipper作为自定义扩展,View以便我可以为要在预览中显示的第一页设置xml属性?
为了查看它是否有效,我尝试了一个示例,该示例应在预览中显示第三页,但是不起作用。这是kotlin中的示例:
class ViewFlipperEng: ViewFlipper {
constructor(context: Context): super(context) {
init(context)
}
constructor(context: Context, attrs: AttributeSet): super(context, attrs) {
init(context)
}
private fun init(cxt: Context) {
displayedChild = 2
invalidate()
//also tried showNext or showPrevious
}
}
Run Code Online (Sandbox Code Playgroud) android ×10
viewflipper ×10
animation ×2
android-view ×1
ebook-reader ×1
height ×1
java ×1
kotlin ×1
textview ×1