Articles of 查看

获取正在接收所有触摸事件的视图

我有一个系统覆盖,位于所有Activities和Windows 。 唯一的问题是,当用户把他/她放在屏幕上时,它只能检测到MotionEvents (它不能跟踪手指的移动或检测到手指抬起时)。 作为一个可能的解决scheme,我实现了第二个视图(我称之为跟踪视图),它能够处理所有的触摸事件,但保持隐藏状态,直到系统覆盖层检测到所需位置的触摸; 在这种情况下,它会提出跟踪观点。 唯一的问题是,直到用户将他/她的手指放回到屏幕上,跟踪视图才开始检测触摸事件。 因此,为了解决这个问题,我想拦截获取触摸事件的视图(这是系统覆盖下的视图),并将其所有的触摸事件转发给跟踪视图进行处理。 有谁知道我怎样才能得到接收所有的触摸事件,并redirect它所接收的所有触摸事件的观点? 这个问题是指在这个问题中使用的例子。

findViewById(R.id.content)和getRootView()之间的区别

findViewById(R.id.content)和getRootView()有什么区别? 不要同时返回活动的根视图吗?

Android布局参数只改变宽度和高度

我知道如何通过执行以下操作使用LayoutParams设置视图的宽度和高度: android.view.ViewGroup.LayoutParams params = button.getLayoutParams(); params.width = height/7; params.height = height/10; button.setLayoutParams(params); 现在,只要我想应用相同的高度和宽度到另一个button,我需要创build另一个LayoutParams或覆盖现有的像这里: android.view.ViewGroup.LayoutParams params2 = but2.getLayoutParams(); params2.width = height/7; params2.height = height/10; but2.setLayoutParams(params2); 我在我的应用程序中有大约50个button,我怀疑它被认为是很好的代码来获得所有的参数,以便只改变宽度和高度 – 我想保留剩余的参数(toLeftOf,[…])。 有没有办法只改变宽度和高度的参数,但保持其余的参数? 所以它看起来像这样: android.view.ViewGroup.LayoutParams params = button.getLayoutParams(); params.width = height/7; params.height = height/10; button.setLayoutParams(params); button2.setLayoutParams(params); button3.setLayoutParams(params); butt[…] 非常感谢。

Android获取PreferenceActivity中的偏好设置

我想得到View实例,用于显示PreferenceActivity中的特定首选项,所以我可以修改它的属性,例如: public class SettingsActivity extends PreferenceActivity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preference); Preference pref = findPreference("key"); pref.getView().setVisibility(View.GONE); //not necessarily setVisibility, i hope you get my point } } 我只发现这个方法: getView(查看convertView,ViewGroup父) 。 但是,我似乎很困惑,如果我想获得我的偏好视图,我需要提供视图和viewGroup作为参数? 有人可以解释如何使用这种方法,或者指向另一种方法来从我的首选项实例获取视图。 PS:如果可能,我宁愿不扩展偏好类,但我不介意,如果有必要

如何select和复制未附加到活动的视图中的文本?

我正在创build一个像这样的“浮动”WebView: public class MyService extends Service { public static WindowManager windowManager; public static LinearLayout mainView; public WebView webView; @Override public void onCreate() { super.onCreate(); windowManager = (WindowManager) getSystemService(WINDOW_SERVICE); LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE); // main view mainView = (LinearLayout) inflater.inflate(R.layout.popup, null); WindowManager.LayoutParams mainViewParams = new WindowManager.LayoutParams( LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.TYPE_PHONE, WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH, PixelFormat.TRANSLUCENT); windowManager.addView(mainView, mainViewParams); // main […]

什么logcat消息:“E / MoreInfoHPW_ViewGroup(2905):父视图不是一个TextView”是什么意思?

我正在开发一个android应用程序,并且在我的logcat中放置了一个filter,用我的应用程序包名称来过滤日志。 不幸的是,这个错误信息总是出现,我不知道如何解决这个问题。 我的应用程序运行良好,没有任何问题或崩溃。 不过,我想修复这个错误日志。 07-15 11:14:48.808: E/MoreInfoHPW_ViewGroup(2905): Parent view is not a TextView

克隆textview将其附加到ViewGroup

我有一个用XML定义的ViewGroup,在onCreate的时候我想有一个variables。 我不想经历使用列表视图+适配器的麻烦导致其明显矫枉过正,因为我知道列表不会因为onCreate() 这或多或less是我想要的代码。 TextView mytextview = myViewGroup.findViewById(R.id.mytext); for(String test : strings){ mytextview = mytextview.clone(); mytextview.setText(test); myViewGroup.addView(mytextview); } 但它不工作。

Android查看背景意外地改变

我正在构build一个拥有大量屏幕的应用程序。 大多数屏幕的顶部有一个背景颜色的视图。 我经常改变使用view.setBackgroundColor(颜色)的颜色 这里出现了奇怪的事情:有时在设置一个视图的颜色后,说到#f14fb7,在应用程序中导航时,其他视图的背景被设置为该颜色,而我不希望它们。 它有时甚至发生我没有设置ID的意见,所以没有办法调用setBackgroundColor在这些意见。 这种情况很less发生,与我尝试过的任何stream程都不一致。 当我杀了应用程序,并重新启动它,一切正常,因为它应该。 我唯一的猜测是有些内存泄​​漏的国王,但我希望有一个更简单的解释。 任何人都可以想到这个事情发生的一些原因吗? *这发生在我的Galaxy S3上。

以编程方式设置视图的重力

我正在研究Android源代码View 。 我想知道如何设置多个gravities,自定义View 这是XML <com.android.systemui.statusbar.policy.Clock android:id="@+id/clock" android:textAppearance="@style/TextAppearance.StatusBar.Clock" android:layout_width="wrap_content" android:layout_height="match_parent" android:singleLine="true" android:paddingLeft="6dip" android:gravity="center_vertical|left" /> 正如你所看到的,默认的引力是center_vertical |左边,所以我的Java代码应该是这样的 View clock = mStatusBarView.findViewById(R.id.clock); if (clock != null) { SOMEHOW SET GRAVITY -> mCenterClock ? Gravity.CENTER : (Gravity.CENTER_VERTICAL | Gravity.LEFT); } setGravity方法不适用于View 。 那么有没有其他的设置重力,默认情况下不会丢失宽度和高度? 提前致谢。

在Android中“预缩”matrix意味着什么?

在审查: http : //developer.android.com/reference/android/graphics/Canvas.html 我在想 translate():“用指定的翻译预处理当前matrix” – 这是什么意思? 我无法在互联网上的任何地方find“preconcat”的好定义! 我能find的唯一地方就是在Android的源代码中 – 我开始怀疑他们是否做到了? 🙂 我熟悉“concat”或concatenate,这是附加到,那么什么是预concat?