小编Pau*_*hek的帖子

用于RecyclerView的GridLayoutManager上的方形布局

我尝试使用方形图像制作网格布局.我认为必须有可能GridLayoutManager通过操纵onMeasure来操纵

super.onMeasure(recycler, state, widthSpec, widthSpec); 
Run Code Online (Sandbox Code Playgroud)

代替

super.onMeasure(recycler, state, widthSpec, heightSpec);
Run Code Online (Sandbox Code Playgroud)

但不幸的是,这没有用.

有任何想法吗?

android gridlayoutmanager android-recyclerview

60
推荐指数
5
解决办法
3万
查看次数

first()和take(1)之间的区别

我想了解细节RxJava.

直觉上我期望first()并且take(1)平等并且做同样的事情.但是通过挖掘源代码first()定义为take(1).single().

这有什么single()用?还不take(1)保证输出单个项目吗?

java reactive-programming rx-java

29
推荐指数
2
解决办法
8664
查看次数

RecyclerView:异步图像加载

RecyclerView用来显示一个包含的列表imageView.为了使UI更流畅,我将保存在SD卡上的58dp缩略图加载到这些imageViews中asyncTask.

问题是,一旦childView进入可视化显示,来自另一个数据的旧图像被重用,然后在AsyncTask完成后被替换.我可以通过将imageView位图设置为null 来停止改组onPreExecute.

有没有办法真正重复使用旧图像,或者我真的必须在每次新View的到位时从SD卡加载图像?这使得视图非常难看,因为首先存在错误的图像或者图像是纯白色的.

android android-asynctask android-recyclerview

21
推荐指数
3
解决办法
3万
查看次数

Android BottomSheet:隐藏在工具栏下

我尝试使用支持库23.2.0中的新底页将底页扩展为全屏,如设计指南中所建议的那样

这个效果非常好,但是底页位于我的ActionBar和我的标签下.

怎么可以让底页超过工具栏?我的菜单结构如下:

    <android.support.design.widget.AppBarLayout
        android:id="@+id/appbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingTop="@dimen/appbar_padding_top">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:layout_scrollFlags="scroll|snap|enterAlways"
            app:popupTheme="@style/AppTheme.PopupOverlay"/>

        <android.support.design.widget.TabLayout
            android:id="@+id/tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>

    </android.support.design.widget.AppBarLayout>

    <android.support.v4.view.ViewPager
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"/>

    <include
        android:id="@+id/playerLayout"
        layout="@layout/player_main"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:behavior_peekHeight="?attr/actionBarSize"
        app:layout_behavior="@string/bottom_sheet_behavior"
        app:model="@{model}"/>

</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

android android-support-library material-design androiddesignsupport

16
推荐指数
1
解决办法
1万
查看次数

Tensorflow Estimator:缓存瓶颈

在遵循张量流图像分类教程时,首先它会缓存每个图像的瓶颈:

def:cache_bottlenecks())

我用tensorflow重写了训练Estimator.这真的简化了所有代码.但是我想在这里缓存瓶颈功能.

这是我的model_fn.我想缓存dense图层的结果,这样我就可以对实际的培训进行更改,而不必每次都计算瓶颈.

我怎么能做到这一点?

def model_fn(features, labels, mode, params):
    is_training = mode == tf.estimator.ModeKeys.TRAIN

    num_classes = len(params['label_vocab'])

    module = hub.Module(params['module_spec'], trainable=is_training and params['train_module'])
    bottleneck_tensor = module(features['image'])

    with tf.name_scope('final_retrain_ops'):
        logits = tf.layers.dense(bottleneck_tensor, units=num_classes, trainable=is_training)  # save this?

    def train_op_fn(loss):
        optimizer = tf.train.AdamOptimizer()
        return optimizer.minimize(loss, global_step=tf.train.get_global_step())

    head = tf.contrib.estimator.multi_class_head(n_classes=num_classes, label_vocabulary=params['label_vocab'])

    return head.create_estimator_spec(
        features, mode, logits, labels, train_op_fn=train_op_fn
    )
Run Code Online (Sandbox Code Playgroud)

python classification machine-learning tensorflow

14
推荐指数
1
解决办法
321
查看次数

什么是Subject.asObservable有用?

为什么RxJava需要asObservable

从技术上讲,每个主题已经是一个Observable.它的优点是什么,而不仅仅是铸造它

Observable obs = subject;
Run Code Online (Sandbox Code Playgroud)

rx-java

13
推荐指数
1
解决办法
5178
查看次数

Android:带有重复项的SortedList

我有一些理解RecyclerViews的问题SortedList.

假设我有一个非常简单的类,只有一个非常简单的类保存数据:

public class Pojo {
    public final int id;
    public final char aChar;

    public Pojo(int id, char aChar) {
        this.id = id;
        this.aChar = aChar;
    }

    @Override
    public String toString() {
        return "Pojo[" + "id=" + id
                + ",aChar=" + aChar
                + "]";
    }
}
Run Code Online (Sandbox Code Playgroud)

我的理解是排序列表不包含任何重复项.

但是当我有一个带有这样的回调的SortedList时:

....

@Override
public boolean areContentsTheSame(Pojo oldItem, Pojo newItem) {
    return oldItem.aChar == newItem.aChar;
}

@Override
public int compare(Pojo o1, Pojo o2) {
    return Character.compare(o1.aChar, o2.aChar);
}

@Override
public …
Run Code Online (Sandbox Code Playgroud)

java android sortedlist android-recyclerview

10
推荐指数
3
解决办法
2004
查看次数

parcelable继承:抽象类 - 哪个CREATOR?

我有一个A实现Parcelable 的抽象类.

我有一个班级B和一个班级C都延伸A.我怎样才能使它们变得可以分辨?

因为我可以链接它并在许多帖子中提供CREATORin ABlike之类的建议.但由于我有其他对象存储A-B-C类并实现Parcelable自己,这种方法似乎不起作用,因为当我想传递一个ArrayList时,A我将不得不CREATOR在类型列表中使用

ArrayList<A> elements = new ArrayList<>();
in.readTypedList(elements , B.CREATOR); // B.CREATOR? C.CREATOR???
Run Code Online (Sandbox Code Playgroud)

这显然没有意义.那么我怎样才能正确制作A Parcelable?

即我想使这个类Parcelable所以我可以以一种常见的方式引用A.

一个)

public abstract class A implements Parcelable {

    final String globalVar;

    public A(String globalVar) {
        this.globalVar = globalVar;
    }
}
Run Code Online (Sandbox Code Playgroud)

B)

public class B extends A {

    String bVar;


    public B(String global, String bVar) {
        super(global);
        this.bVar = bVar;
    }

    private B(Parcel …
Run Code Online (Sandbox Code Playgroud)

java inheritance android parcelable

8
推荐指数
2
解决办法
2269
查看次数

RecyclerView:突出显示所选项目

我已经实现了一个RecyclerView,我已将其设置为使用CAB.但是,如何突出显示所选项目?如果某个位置我检查了我存储在一个SparseBooleanArray.我的第一个想法是存储特定的View包含我的所有元素ViewHolder然后以onBindViewHolder某种方式设置背景:?android:attr/activatedBackgroundIndicator 但我怎么能这样做?这是一种有用的方法吗?

android cab android-recyclerview

7
推荐指数
1
解决办法
8038
查看次数

MediaMetadataRetrieverJNI:getEmbeddedPicture失败

我正在使用android并遍历数百个mediafile,以找到第一张嵌入式图片,效果很好,但在我的logcat中却发了很多错误。

我正在使用此代码:

for (String s : ArrayList <String> paths){
    MediaMetadataRetriever mmr = new MediaMetadataRetriever();
    mmr.setDataSource(path);
    byte[] data = mmr.getEmbeddedPicture();
    if (data != null) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

它记录的错误是:

E/MediaMetadataRetrieverJNI? getEmbeddedPicture: Call to getEmbeddedPicture failed.
E/MediaMetadataRetrieverJNI? getEmbeddedPicture: Call to getEmbeddedPicture failed.
E/MediaMetadataRetrieverJNI? getEmbeddedPicture: Call to getEmbeddedPicture failed.
E/MediaMetadataRetrieverJNI? getEmbeddedPicture: Call to getEmbeddedPicture failed.
E/MediaMetadataRetrieverJNI? getEmbeddedPicture: Call to getEmbeddedPicture failed.
E/MediaMetadataRetrieverJNI? getEmbeddedPicture: Call to getEmbeddedPicture failed.
.....
Run Code Online (Sandbox Code Playgroud)

我使用的对吗?如果可以,则可以抑制该错误,这会使调试变得烦人。根据MediaMetadataRetriever,它应该简单地返回null

java android mediametadataretriever

5
推荐指数
1
解决办法
1605
查看次数