Android wear Wearable ListView ImageView 选择器

标签 android android-listview wear-os

我正在尝试创建一个 ListView ,如下所示:-

enter image description here

现在,我已经使用 Wea​​rableListView 适配器使 ListView 成功运行。但是,我在 ImageView 中使用静态图像。我想要的是在滚动时聚焦特定列表元素时创建这种灰色和蓝色的动画。我怎么做?我尝试为 ImageView 使用一个选择器 xml 文件,但似乎这个 ListView 没有使用这个选择器(android:state-focused, selected, pressed-nothing works)。知道我怎样才能得到我想要的吗?希望我把问题说清楚了。谢谢。

最佳答案

是的,您是对的,图像选择器不起作用,为什么?我不太清楚,我们也没有任何文档可供阅读。

但幸运的是我已经成功实现了这个场景,它几乎类似于默认设置屏幕。

为了解决这个问题,我在下面的方法中设置了圆圈颜色:

  1. onScaleUpStart() - 为所选项目设置圆圈颜色
  2. onScaleDownStart() - 为未选择的项目设置圆圈颜色。

我在项目布局中使用了 CircleImageView 和 TextView。示例代码可以是:

private final class MyItemView extends FrameLayout implements WearableListView.Item {

    final CircledImageView image;
    final TextView text;
    private float mScale;
    private final int mFadedCircleColor;
    private final int mChosenCircleColor;

    public MyItemView(Context context) {
        super(context);
        View.inflate(context, R.layout.wearablelistview_item, this);
        image = (CircledImageView) findViewById(R.id.image);
        text = (TextView) findViewById(R.id.text);
        mFadedCircleColor = getResources().getColor(android.R.color.darker_gray);
        mChosenCircleColor = getResources().getColor(android.R.color.holo_blue_dark);
    }

    @Override
    public float getProximityMinValue() {
        return mDefaultCircleRadius;
    }

    @Override
    public float getProximityMaxValue() {
        return mSelectedCircleRadius;
    }

    @Override
    public float getCurrentProximityValue() {
        return mScale;
    }

    @Override
    public void setScalingAnimatorValue(float value) {
        mScale = value;
        image.setCircleRadius(mScale);
        image.setCircleRadiusPressed(mScale);
    }

    @Override
    public void onScaleUpStart() {
        image.setAlpha(1f);
        text.setAlpha(1f);
        image.setCircleColor(mChosenCircleColor);
    }

    @Override
    public void onScaleDownStart() {
        image.setAlpha(0.5f);
        text.setAlpha(0.5f);
        image.setCircleColor(mFadedCircleColor);
    }
}

关于Android wear Wearable ListView ImageView 选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25106866/

相关文章:

android - 将 Canvas 链接到位图

android - ListView 未按预期运行

android - 弧焊机无法通过代理连接互联网

android - 文本小部件中数字数据的百分比波动

java - 监听 View (列表标题)onTouch 事件并禁用 ListView 上的滚动

android wear : only picture, 无标题第二页

android - 带有复选框行的 ExpandableListView OnChildClickListener 在滚动时不会触发

android - 如何设置CheckedTextView的选中/未选中

wear-os - WearableDataListener 服务不调用 onDataChanged 方法

Android Studio : "Could not get unknown property ' com' for root project 'watchface-master' of type org. gradle.api.Project。”