Articles of android view

创build和使用片段的视图,但不可见的用户

原因 我需要这样做,因为我想获得片段视图的可绘制caching,然后从该视图创build一个位图。 这个位图将被用来在Facebook上发布。 问题 当我创build我的Fragment的时候,视图并没有被创build,因为它们没有通过Fragment Transaction添加,而且它们包含的视图对用户是不可见的。 我也不想手动绘制这些视图,因为我不会得到一个确切的复制品的屏幕。 我的问题 有没有一种方法可以使Fragment具有完整的function(与通过FragmentTransaction添加function相同),而不会显示片段? 我需要能够访问片段的视图,当它不可见。 提前致谢

是否可以截取一个视​​图,而不显示视图?

简短的问题: 假设我有某种布局文件,并且膨胀它(或者在代码中使用普通的CTOR)。 我不希望显示膨胀的视图,而是希望在某些限制(给定的宽度和高度,甚至比屏幕更大的限制)下看起来像是“截图”(位图)。 我不希望将视图添加到屏幕上的任何地方,但只是为了这个目的而保留它,也许以后再添加它。 这样的事情可以用来轻松操纵如何放置东西。 例如,我可以使用一个图像放置在其中的布局,以便它周围有一个框架。 这样的事情可能吗? 如果是这样,怎么样?

在Android中同时处理多个视图的触摸事件

考虑下图中的例子, 我正在寻找一个解决scheme,将触摸事件从canvas视图传递给Viewpager 。 这对于在两个视图中同时应用相同数量的缩放都是必需的。 这是关于正在发生的事情的技术说明, (让我们把视图看作是A , B和C ) A.父视图 B.查看 C.查看传呼机 在孩子( B & C )上调用dispatchTouchEvent()之前, A.dispatchTouchEvent()将首先调用A.onInterceptTouchEvent()来查看视图组是否有兴趣截获事件。 所以如果A.onTouchEvent()返回false ,那么它回到B.onTouchEvent() 。 如果返回false ,则返回到C.onTouchEvent() ,调度继续。 一旦回来, ACTION_CANCEL将被分派给所有的孩子。 如果定义了事件监听器( OnTouchListener.onTouch() ),则所有后续的手势事件(直到ACTION_UP / ACTION_CANCEL )都将被使用,否则将在A的级别使用事件处理程序A.onTouchEvent() 。 在这一点上,我可以将事件从父项传递给子视图,但不能让2子视图B。 & C一起处理事件(在两个视图上应用相同的缩放量)。 有没有办法将触摸事件从父视图传递给子视图,以便他们可以同时处理事件? 这是我的布局设置, <RelativeLayout android:id="@+id/layoutParent" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#FFFFFFFF"> <com.androidapp.NonSwipeableViewPager android:id="@+id/pager" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center" android:background="@color/transparent" /> <com.androidapp.DrawingView android:id="@+id/drawing" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/transparent" […]

如何从ListView中获取所有的孩子(可见和不可见)?

我的问题类似于ListView getChildAt为可见的孩子返回null ,但尽pipesearch我找不到解决scheme。 我有一个滚动ListView 。 ListView有10个项目,其中7个是可见的,3个是通过滚动隐藏的。 我也有一个外部方法(out of adapter),它必须从这个ListView获得所有的孩子(比如使用getChildAt() )。 我需要所有的10个项目,但最后3个是null对象。 我试过如下代码: getListView().smoothScrollToPosition(); 但是这不起作用。 我认为我不需要发布我的代码的其余部分,因为描述说明了一切?

在x中绘制位图可绘制的图块,但在y中绘制

我有一个图像,我用它作为RelativeLayout的背景。 图像需要水平平铺以形成图案。 我能够通过使用下面的代码来获取水平平铺图片: BitmapDrawable b3 = (BitmapDrawable)getResources().getDrawable(R.drawable.background); b3.setTileModeX(Shader.TileMode.REPEAT); v.findViewById(R.id.layout).setBackgroundDrawable(b3); 问题是,图像也垂直瓦片。 它似乎在垂直“钳”模式瓷砖,而在水平“重复”模式。 这是一个截图: 正如你所看到的,图像比它占据的空间稍微小一点,而底部边缘被“夹住”。 我怎样才能设置图像垂直拉伸,但水平平铺?

button应该尽可能宽

我希望所有Button都适合文本,所以Button没有换行符,而且所有的Button都应该具有相同的宽度:宽度最大。 我在布局WRAP_CONTENT所有Button layout_width设置为WRAP_CONTENT ,实现了这一点: <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" /> … </LinearLayout> 然后我search最大的值,并设置所有的button大小相同: @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); ViewGroup layout = (ViewGroup) findViewById(R.id.layout); int size = 0; for (int i = 0; i < layout.getChildCount(); ++i) { View child = layout.getChildAt(i); if (child.getWidth() > size) […]

Android:LinearLayout addViewanimation

我目前有一个工作的Android程序,以编程方式将视图添加到LinearLayout。 我希望这些观点能够被animation化,并且在找出如何做到这一点的时候找不到任何好的资源。 有人能指出我正确的方向吗?

在scroller startScroll背后的逻辑?

在这个文档中,我不明白startScroll()的startScroll() 。 它说: 正数将滚动内容到左边。 我不明白。 如果0总是在左边,为什么向左滚动? 如果否定,则会滚动到右侧。 但为什么? 我的头很难缠绕它。 它背后的逻辑是什么? 为什么要向左走呢? 在游戏和graphics编程中,0将始终是左上angular或左下angular,但始终位于左侧。 所以用正数向右移动并向负左移是有意义的。 但为什么在startScroll上有所不同呢? 我只是问因为我真的很好奇,为什么这样devise呢。

查看不附加到窗口pipe理器(最新的解决scheme?)

我从我的应用程序中获取了错误报告的内容,并且它们都是一样的。 这真的很烦人,因为在我的testing设备(HTC Wildfire,Galaxy S I-II-III,Galaxy Mini,Galaxy Tab 10)中,这个错误从来没有发生,对我或我的testing伙伴来说,看起来用户做的事情不同于我们。 正因为如此,我不能给你太多的情况的信息,有一件事我看到,这是一个对话的解雇,我从来没有通过代码调用的东西。 这里是错误的: java.lang.IllegalArgumentException: View not attached to window manager at android.view.WindowManagerImpl.findViewLocked(WindowManagerImpl.java:587) at android.view.WindowManagerImpl.removeView(WindowManagerImpl.java:324) at android.view.WindowManagerImpl$CompatModeWrapper.removeView(WindowManagerImpl.java:151) at android.app.Dialog.dismissDialog(Dialog.java:328) at android.app.Dialog$1.run(Dialog.java:119) at android.app.Dialog.dismiss(Dialog.java:313) at android.app.Dialog.cancel(Dialog.java:1113) at hu.kulcssoft.ingyenkonyv.reader.Reader$JavaScriptInterface$1.run(Reader.java:199) at android.os.Handler.handleCallback(Handler.java:605) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4424) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) at dalvik.system.NativeStart.main(Native Method) 有人可以帮我吗? 我每周得到30-40个错误报告,因为这个问题,我真的不知道为什么发生这种情况。 […]

使用XML布局作为View子类的视图?

我感觉好像我曾经知道如何做到这一点,但我现在正在画一个空白。 我有一个从View( Card )扩展的类,我用XML写了一个布局。 我想要做的是将Card的视图设置为构造函数中的XML视图,所以我可以使用Card的方法来设置TextView和什么。 有什么build议么? 代码如下: Card.java :(我有View.inflate(context, R.layout.card_layout, null);这是我想要做的一个例子,但它不工作,我基本上希望类是视图的接口,为了做到这一点,我需要以某种方式将XML布局分配给视图。我是否沿着setContentView(View view)行使用了一些东西?在View类中没有这样的方法,但有没有像这样的东西? ) public class Card extends View { TextView tv; public Card(Context context) { super(context); View.inflate(context, R.layout.card_layout, null); tv = (TextView) findViewById(R.id.tv); } public Card(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); View.inflate(context, R.layout.card_layout, null); tv = (TextView) findViewById(R.id.tv); } public Card(Context […]