Articles of android selector

如何拥有矢量drawables的选择器?

背景 我已经制作了以下ImageView,以支持选择器为“src”: public class CheckableImageView extends ImageView implements Checkable { private boolean mChecked; private static final int[] CHECKED_STATE_SET = { android.R.attr.state_checked }; public CheckableImageView(final Context context, final AttributeSet attrs) { super(context, attrs); final TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.com_app_CheckableImageView, 0, 0); setChecked(a.getBoolean(R.styleable.com_app_CheckableImageView_com_app_checked, false)); a.recycle(); } @Override public int[] onCreateDrawableState(final int extraSpace) { final int[] drawableState = […]

Android – 状态选择器animation – 仅animation消除,不按

我有一个非常基本的选择器,我用它作为一些按钮的背景来实现关闭状态。 这是xml: 使用此选择器,每次按钮更改状态时都会发生淡入淡出animation。 换句话说,转换将在从按下按下到按下时以及从按下按下到按下时都会生成animation。 现在,我的问题是:它是否有可能使这些状态变化只有其中一个animation? 当用户按下按钮时,我希望在没有animation的情况下立即进行状态转换。 当按钮被按下时,我希望当正常状态消失时,状态会淡出。这可以完成吗?

?android:attr / selectableItemBackground与另一个现有背景

我有一个9patch设置作为我的布局的背景。 但是我仍然希望通过使用selectableItemBackground attr来提供触摸反馈。 我尝试使用带有9patch的和selectableItemBackground作为第二个的android:drawable ,但是这不起作用。 我还可以尝试制作一个选择器,并在list_selector_background_pressed.xml使用覆盖梯度drawable android用于selectableItemBackground 。 但是在4.4 KitKat中,选择的背景颜色实际上是灰色而不是JellyBeans中的蓝色,所以我不能真正硬编码:( 合适的方式,对吧? d:

与“最小宽度600 dp”选择器混淆

在我的应用程序中,我支持手机/平板电脑的外形和单独的布局我使用选择器“布局”(对于手机),“layout-sw600dp”(对于平板电脑)。 以下是详细信息: http://android-developers.blogspot.in/2011/07/new-tools-for-managing-screen-sizes.html Typical numbers for screen width dp are: 320: a phone screen (240×320 ldpi, 320×480 mdpi, 480×800 hdpi, etc). 480: a tweener tablet like the Streak (480×800 mdpi). 600: a 7” tablet (600×1024). 720: a 10” tablet (720×1280, 800×1280, etc). 我有一台Nexus 4手机,以下是它的主要内容 Size: 4.7 inches Resolution: 768 x 1280 pixels DPI: 318 dp: […]

这些略有不同的州抽象的任何行为差异?

Q1)查看listSelector原始ListView状态drawable我们有这样的东西(我剥离了一些代码来简化示例): <item android:drawable="” android:state_window_focused=”false”/> <item android:drawable="” android:state_focused=”true” android:state_pressed=”true”/> <item android:drawable="” android:state_focused=”false” android:state_pressed=”true”/> <item android:drawable="” android:state_focused=”true”/> 但我一直在我的应用程序上这样做: <item android:drawable="” android:state_pressed=”false” android:state_focused=”true”/> <item android:drawable="” android:state_pressed=”true”/> <item android:drawable="” /> 这似乎产生了相同的结果,而且更加简单。 你是否注意到第一个比我自己的版本更好的情况? 我只是想确保我没有遗漏一些重要因素,因为我希望尽可能缩短代码… Q2)我看到许多状态drawables与<item android:drawable="” android:state_window_focused=”false”/>作为顶级项目,但我无法理解为什么需要它。 state_window_focused总是让我感到困惑……真的有必要吗?

android selectableItemBackground选择

当状态被“激活”并且我想保留?attr:selectableItemBackground的效果(波纹)时,我想改变视图的背景。 是否可以扩展或组合?attr:selectableItemBackground ?

带有圆角的Android SlidingTabs样式标签

我正在使用SlidingTabs创建两个选项卡。 选项卡的UI应如下所示 – 选择第一个选项卡时 选择第二个选项卡时。 (请注意蓝色矩形的直角) 我使用以下选择器来创建上面显示的UI。 round_corner_rectangle的代码如下 – login_background是深蓝色。 使用上面的代码,我得到以下 – 我可以从round_corner_rectangle corner项目中删除corner项目以获得深蓝色背景而不是圆形。 如果我将蓝色矩形的右侧笔直,当选择另一个标签时,矩形会在错误的一侧倒圆。 我应该怎么做才能获得第一张图片中显示的UI? 更新: –从我的代码中可以看出,我在创建圆角方面没有问题,问题是在所选选项卡上有直角。 如果我只是添加圆角,当选择第二个标签时,角落在错误的一侧倒圆。

如何使用自定义选择器状态实现CustomView?

我想创建一个显示图像的CustomView 。 单击视图应更改其状态。 视图可以表示三个状态(off,set,notset) 。 我想用XML中的选择器来做这件事。 它不一定需要是自定义选择器。 我可以重用选择器的三种状态(如果状态的名称不同则无关紧要)。 有没有一个很好的方法来实现这一目标?

使用GridView的Android drawSelectorOnTop

我正在开发一个标签式应用程序,其中一个片段CollectionsFragment在每个插槽中包含一个带有ImageView的GridView。 我希望当用户点击其中一个图像时,使用选择器向用户提供反馈。 我已经成功实现了选择器,但是,我的问题是选择器只是在图像的背景中绘制,但我希望选择器可以绘制整个图像。 我已经看到其他地方引用了这个问题,但是,许多人选择的解决方案,设置GridView的drawSelectorOnTop属性,对我来说不起作用。 带有相关适配器代码的相关片段: public class CollectionsFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.activity_collections, container, false); // Grid view is inside the xml view inflated above GridView gridView = (GridView)view.findViewById(R.id.gridview); gridView.setDrawSelectorOnTop(true); ((GridView) gridView).setAdapter(new CustomGridViewAdapter(getActivity())); return view; } private class CustomGridViewAdapter extends BaseAdapter { @Override […]

用于加载UI的Android MVP架构标准,具有Android资源的Model类

我在我的应用程序中遵循MVP架构。 我的HomeActivity包含一个带有列表图标的滑动面板,其中包含选择器,选择滑动面板项目时图标状态已更改,我没有使用任何列表选择器。 我保留了一个模型类NavItemData,用于填充导航抽屉,并使用扩展StateListDrawable的类SlidingPanelItemSelector为滑动面板图标生成适当的选择器。 在MVP架构中,我们有一个演示者类,它与模型通信并生成视图的输入。 在我的情况下, 如果我使用演示者获取Sliding Panel的数据我正在使用Android上下文调用一个类,这是一个很好的方法,或者我们有任何严格遵循MVP架构的替代解决方案? 目前我正在使用ViewBinderUtils类并将其直接注入活动类并获取Sliding Panel的数据列表。 它是否遵循Mvp Architcture? SlidingPanelItemSelector.class public class SlidingPanelItemSelector extends StateListDrawable { private Context mContext; public SlidingPanelItemSelector(Context mContext){ this.mContext = mContext; } public StateListDrawable getHomeSelector(){ StateListDrawable stateListDrawable = new StateListDrawable(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { stateListDrawable.addState(new int[]{android.R.attr.state_pressed}, mContext.getDrawable(R.drawable.ic_nav_home_active)); stateListDrawable.addState(new int[]{},mContext.getDrawable(R.drawable.ic_nav_home)); }else{ stateListDrawable.addState(new int[]{android.R.attr.state_pressed}, mContext.getResources().getDrawable(R.drawable.ic_nav_home_active)); stateListDrawable.addState(new int[]{},mContext.getResources().getDrawable(R.drawable.ic_nav_home)); } return stateListDrawable; […]