我已经尝试了一段时间,但我不能旋转片段视图,这是在一个视页。单击是在ViewPager的父片段的视图上。我一直得到空指针异常。我已经在我得到异常的代码行上面注释了。
主片段
int item = mViewPager.getCurrentItem();
Fragment frag = (Fragment) mSectionsPagerAdapter.getItem(item);
final View containers = frag.getView();
rootView.findViewById(R.id.flipCard).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getActivity().getApplicationContext(), "Working ", Toast.LENGTH_SHORT).show();
//**Exception at below line**
View rootLayout = (View) containers.findViewById(R.id.card_view);
View cardFace = (View) containers.findViewById(R.id.mainLayout);
View cardBack = (View) containers.findViewById(R.id.mainLayout2);
if (cardFace == null || cardBack == null) {
Toast.makeText(getActivity().getApplicationContext(), "Null View", Toast.LENGTH_SHORT).show();
}
FlipAnimation flipAnimation = new FlipAnimation(cardFace, cardBack);
if (cardFace.getVisibility() == View.GONE) {
flipAnimation.reverse();
}
rootLayout.startAnimation(flipAnimation);
}
});
public class FlipAnimation extends Animation {
private Camera camera;
private View fromView;
private View toView;
private float centerX;
private float centerY;
private boolean forward = true;
/**
* Creates a 3D flip animation between two views.
*
* @param fromView First view in the transition.
* @param toView Second view in the transition.
*/
public FlipAnimation(View fromView, View toView) {
this.fromView = fromView;
this.toView = toView;
setDuration(700);
setFillAfter(false);
setInterpolator(new AccelerateDecelerateInterpolator());
}
public void reverse() {
forward = false;
View switchView = toView;
toView = fromView;
fromView = switchView;
}
@Override
public void initialize(int width, int height, int parentWidth, int parentHeight) {
super.initialize(width, height, parentWidth, parentHeight);
centerX = width / 2;
centerY = height / 2;
camera = new Camera();
}
@Override
protected void applyTransformation(float interpolatedTime, Transformation t) {
// Angle around the y-axis of the rotation at the given time
// calculated both in radians and degrees.
final double radians = Math.PI * interpolatedTime;
float degrees = (float) (180.0 * radians / Math.PI);
// Once we reach the midpoint in the animation, we need to hide the
// source view and show the destination view. We also need to change
// the angle by 180 degrees so that the destination does not come in
// flipped around
if (interpolatedTime >= 0.5f) {
degrees -= 180.f;
fromView.setVisibility(View.GONE);
toView.setVisibility(View.VISIBLE);
}
if (forward)
degrees = -degrees; //determines direction of rotation when flip begins
final Matrix matrix = t.getMatrix();
camera.save();
camera.rotateY(degrees);
camera.getMatrix(matrix);
camera.restore();
matrix.preTranslate(-centerX, -centerY);
matrix.postTranslate(centerX, centerY);
}
}
将此代码放入片段的oncreateView
中,以防万一,这样就不需要调用frag.getview(),在您的情况下,它返回null。
iPad版腾讯视频翻转显示影片详情动画,path里也用到这个动画,用户点击列表上面某张缩略图片,图片翻转变大之后显示详情。动画效果请看视频。 [Code4App.com]
主要内容:本节引言:,1.为ViewFlipper加入View的两种方法,2.常用的一些方法,3.使用实例,4.代码示例下载,本节小结:本节引言: 本节给大家带了的是ViewFlipper,它是Android自带的一个多页面管理控件,且可以自动播放! 和ViewPager不同,ViewPager是一页页的,而ViewFlipper则是一层层的,和ViewPager一样,很多时候, 用来实现进入应用后的引导页,或者用于图片轮播,本节我们就使用ViewFlipper写一个简单的图片 轮播的例子吧~官
本文向大家介绍Android ViewFlipper翻转视图使用详解,包括了Android ViewFlipper翻转视图使用详解的使用技巧和注意事项,需要的朋友参考一下 简介 ViewFlipper是Android自带的一个多页面管理控件且可以自动播放!它和ViewPager有所不同,ViewPager继承自ViewGroup,是一页一页的,可以带动画效果,可以兼容低版本;而ViewFlippe
我正在编写一个绘图应用程序,我不希望绘图视图旋转。同时,我希望其他控件根据设备的方向很好地旋转。在iOS7中,我通过以下方式解决了这个问题: 但在iOS 8上,即使调用了该函数并正确设置了变换,也不会阻止视图旋转。 我尝试过创建一个视图控制器,它可以简单地防止视图的旋转并将其视图添加到视图层次结构中,但它不会响应用户输入。 有什么想法吗? 谢谢
问题内容: 我正在尝试旋转/翻转已经位于Google Cloud Storage内部的图像。 这是Blobkey: 然后,我检索图像并应用图像变换: 我可以使用以下方式在字节数组中获取RAW图像数据: 直接使用GCS,我可以将其写入云存储服务: 在本地,我可以看到旋转的图像位于appengine生成的文件夹中,如何获取新的服务url或objectName应该是什么以覆盖原始图像?objectNam
这就是它没有覆盖原始内容的原因。我猜是我创建的文件名不正确,还是我创建的GcsOutputChannel正在更改路径?我也很好奇为什么我得到的是原始图像的url而不是新图像的url? 如果我拆分原始的GcsFileName并只取最后一部分,我将得到一个错误: Google存储文件名必须以/gs/为前缀 解决方案 使用以下方法检索blobKey: ...即使FileName.getObjectNam