我有一个LinearLayout
我希望显示或隐藏的内容Animation
,只要我改变其可见性,就会向上或向下推动布局.
我在那里看到了一些样品,但它们都不适合我的需要.
我为动画创建了两个xml文件,但是当我更改a的可见性时,我不知道如何启动它们LinearLayout
.
我有一个观点TableLayout, TableRow and TextView
.我希望它看起来像一个网格.我需要得到这个网格的高度和宽度.这些方法getHeight()
和getWidth()
总是返回0.这发生在我和动态也格式化网格时我使用XML版本.
如何检索视图的尺寸?
这是我在Debug中用来检查结果的测试程序:
import android.app.Activity;
import android.os.Bundle;
import android.widget.TableLayout;
import android.widget.TextView;
public class appwig extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.maindemo); //<- includes the grid called "board"
int vh = 0;
int vw = 0;
//Test-1 used the xml layout (which is displayed on the screen):
TableLayout tl = (TableLayout) findViewById(R.id.board);
tl = (TableLayout) findViewById(R.id.board);
vh = tl.getHeight(); //<- getHeight returned 0, Why?
vw = tl.getWidth(); //<- …
Run Code Online (Sandbox Code Playgroud) 通过为其中一个设置负边距来重叠视图,以便它侵入另一个视图的边界框.
它似乎按照你期望的方式工作,如果他们应该重叠布局.但是我不想在不知不觉中做不好的事情遇到更大的问题.模拟器,物理设备,你命名它,当你使用负边距时,一切似乎都正常工作,一个视图侵入另一个视图边界框,并取决于它在布局中声明的方式,它将在另一个视图的上方或下方.
我也知道,自API 21以来我们可以设置translationZ
和elevation
属性使视图显示在其他视图的上方或下方,但我的关注基本上来自这样一个事实,即在layout_margin
属性的文档中明确指出边缘值应为正,让我引述:
摘录:
指定此视图左侧,顶部,右侧和底部的额外空间.这个空间超出了这个视野的范围.保证金价值应为正数.必须是维值,这是一个附加单位的浮点数,例如"14.5sp".可用的单位是:像素(像素),DP(密度无关的像素),SP(基于优选的字体大小缩放的像素),in(英寸),(毫米)...
在未来的几年,因为最初提出这个问题,我还没有切缘阴性的任何问题,并尽量避免使用它们尽可能多地,但并没有遇到任何问题,所以即使文档指出,我不是太担心它.
我习惯用老式图书馆处理图形(allegro,GD,pygame),如果我想将一个位图的一部分复制到另一个......我只是使用blit.
我想弄清楚如何在android中做到这一点,我感到非常困惑.那么......我们将这些Canvas设置为只写,Bitmaps是只读的吗?看起来真是太愚蠢了,必须有一些我想念的东西,但我真的无法理解.
编辑:更精确一点...... 如果位图是只读的,而且画布只是写入的,我不能将A插入B,然后将B插入C?
我有一个RelativeLayout
填充屏幕,并ImageView
使用LayoutParams
边距定位在屏幕上.这些ImageView
动画以不同的方式动画,在一种情况下,我希望图像从右边"飞入"屏幕.
不幸的是,如果我将leftMargin
ImageView 设置为大于屏幕的宽度,则它不会出现(或者如果在动画开始时部分可见,则会出现裁剪).
我尝试将宽度和高度设置RelativeLayout
为大于屏幕尺寸 - 它可以工作,但只是部分工作:如果图像完全位于屏幕外,则不起作用,如果图像部分可见,则不会裁剪,但是这只适用于右侧和底侧.
所以,我的问题是:如何定位几个ImageViews
上和关闭屏幕,这样我可以用它们制作动画Animation
?
我想在SurfaceView上制作动画动画.理想情况下,我想在动画结束后收到通知.
例如:我可能有一辆朝北的汽车.如果我想要让它面向南方的动画,持续时间为500毫秒,我该怎么做?
我正在使用SurfaceView所以所有动画必须手动处理,我不认为我可以使用XML或Android Animator类.
此外,我想知道在SurfaceView中连续动画内容的最佳方法(即步行循环)
我在动画完成后移动视图(从左侧滑出菜单).但是,我似乎无法达到我想要的效果.我想要的是视图延伸到父节点的右边,如下所示:
但是发生了什么事实上是这样的:
视图重置自身以保持在父级的范围内.即使我设置了绝对像素值(通过查看显示器的宽度,甚至是随机大的值).
我需要这样做的原因在这个关于视图在动画完成后的实际位置的问题中详细说明: TranslateAnimated ImageView在动画之后无法点击[Android]
有什么想法吗?谢谢!