Articles of 视图

Android视图的ID是否可以在多个活动中安全共享?

假设我在Android应用程序EditPerson和EditEmployee有两个活动。 将EditPerson Activity作为EditPerson活动的基类似乎很自然,并定义了将数据EditEmployee布局中定义的视图的方法。 EditPerson Activity的实现会将(姓名)字段从EditText元素中推出(例如)。 EditEmployee版本将调用基类版本,然后编组自己的专业领域(比如税号等)。 为了便于共享代码,两个活动都必须有一个布局资源,该资源定义了一对或多对共享相同ID的EditText元素。 即在layout\edit_person.xml会有: <EditText android:id="@+id/name_editor" /> 然后在layout\edit_employee.xml会有这样的: <EditText android:id="@+id/name_editor" /> <EditText android:id="@+id/tax_id_editor" /> <!– etc. –> 由于“员工”是一个“人”,并有共同的字段(通过inheritance编组),似乎分配的id(上面的例子中的“name_editor”)只在一个范围内是唯一的活动(或布局?)。 从我的testing,这似乎工作,但我有点偏执,会有一个无意的副作用,这种方法和使用不明确的布局元素ID。 任何人都可以证实这是一个安全的做法和/或指出它将如何最终炸毁我的申请? 有没有人做过类似的事情?

在android中,将videostream预览到视图上

我想将android相机的相机预览stream到视图上。 其意图是事后添加各种东西到视图中,使用onDraw()。 我不需要随时捕捉图像。 它不一定是每秒最高质量或最大数量的帧。 有没有人有一个想法如何做到这一点?

检测您的手指在Android中滑动的视图

虽然过去曾经提出过类似的问题 ,但似乎并没有真正得到答案,这可能是由于对所要求的问题造成混淆。 简而言之,我想要检测当您的手指滑过屏幕时正在input哪个视图。 这个行动的最好例子是任何Android手机上的软键盘。 当你按下任何键时,它会显示为一个popup窗口,告诉你手指下面有什么字母。 如果您现在将手指在一个手势上移动到键盘上,随着您在字母表的各个字母上方移动,会popup各种字母。 什么样的听众用于这种行为。 我已经尝试了OnTouchListeners,但他们似乎只有当你“触摸”button,而不是“手指过去”他们 Button button = (Button)findViewById(R.id.button); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) {doStuff();} }); button.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { doStuff(); return false; } }); OnFocusChangeListener也没有帮助。

setBackgroundResource和setBackgroundDrawable有什么区别

任何人都可以告诉我什么是setBackgroundResource(resourceid)和setBackgroundDrawable(getResource().getDrawable(drawableid))之间的差异?

导航抽屉速度慢,视图复杂

在我的应用程序我使用导航抽屉,它工作得很好。 但是,如果要显示的片段包含很多TextView,ImageView和布局,当我点击该项目时,视图是毛刺的。 我会改善这个滞后。 我的Galaxy Nexus和Nexus 4的效果是一样的,所以我认为问题是我在同一时间有2个命令。 //On item click – First comand (Close Drawer) mDrawerList.setItemChecked(position, true); setTitle(mStringTitles[position]); mDrawerLayout.closeDrawer(mDrawerView); // Second comand (Replace Fragment) getFragmentManager() .beginTransaction() .replace(R.id.firts_view, new FragmentNew()) .commit(); 所以我想我会在菜单closures后立即更换这个片段..有什么想法?

更改视图onClick coverflow – Android

我正在使用这个CoverFlow: http : //www.inter-fuser.com/2010/02/android–coverflow-widget-v2.html 我希望能够改变视图,当我点击一个button,该button是一个后退/前进的图标,将带你到上一个/下一个项目在封面stream。 我已经稍微修改了coverflow,以便使用XML布局。 这是我的onCreate()方法: setContentView(R.layout.main); CoverFlow coverFlow = (CoverFlow)findViewById(R.id.coverflow); coverFlow.setAdapter(new ImageAdapter(this)); ImageAdapter coverImageAdapter = new ImageAdapter(this); coverFlow.setAdapter(coverImageAdapter); coverFlow.setSpacing(-20); coverFlow.setSelection(0, true); coverFlow.setAnimationDuration(1000); tv = (TextView)findViewById(R.id.textView1); coverFlow.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { Toast.makeText(getBaseContext(), String.valueOf(arg2), Toast.LENGTH_SHORT).show(); } }); coverFlow.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> arg0, […]

如何从ViewGroup(FrameLayout)获取特定(自定义)视图的索引onLongClick在View

有人可以帮我用我的语法? 我dynamic地将一些视图(自定义视图)添加到已经在XML中定义的FrameLayout。 这些自定义视图是不同的types或相同的types。 我可以将视图添加到屏幕,但无法从ViewGroup中删除特定的视图(与其types相同或不同)。 那些具有onTouch()自定义视图。 在这里,我面临的问题:无法触发long click ,总是需要touch listener 如果用户长时间点击select一个视图,我必须在这里创build两个选项 改变背景颜色 删除视图。 编辑:根据taobuild议,我可以得到长按查看索引,如果没有触摸监听器的查看。 但我必须实现触摸听众一起长按… 我怎样才能做到这一点?

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) […]

XML中setTag(key,value)的等价性

我可以在我的Android布局文件中使用setTag(key)等价性,如下所示: <EditText android:id="@+id/passwordEdit" android:tag="key" android:inputType="textPassword"/> 我想在我的XML使用setTag(key, value)等价。 可能吗?

简单的方法添加联系人照片到ImageView?

我有问题,并设置联系人的图像作为视图的背景,令人惊讶的是有几个例子如何做到这一点。 我正在尝试构build类似于显示大型联系人照片的“人物”应用的内容。 这就是我现在正在做的事情: Uri uri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, Long.valueOf(id)); InputStream input = ContactsContract.Contacts.openContactPhotoInputStream(context.getContentResolver(), uri); Bitmap bm = BitmapFactory.decodeStream(input); Drawable d = new BitmapDrawable(bm); button.setBackgroundDrawable(drawable); 这个工作,但是它使用的URI得到一个缩略图,所以即使有一个大的照片图像看起来非常糟糕,缩放到适合imageView。 我知道另一种方法来获得实际上得到一个大照片的URI: final Uri imageUri = Uri.parse(cur.getString(cur.getColumnIndex(ContactsContract.Contacts.PHOTO_URI))); 然而,我没有设法得到它imageView,也许上面的代码可以适应使用第二个uri。 如果你知道如何使用第二个URI,或者如果有一个比通过URI更容易获取联系人图像的方法,请告诉我。 任何信息将被感谢。