小编Nif*_*hel的帖子

AppBarLayout.setExpanded(boolean,true)支持库23.1.1中的奇怪动画

在我的应用程序中,我使用扩展或收缩AppBarLayout特定事件setExpanded(boolean, true).

我得到了一个很好的结果,使用了一个活泼动人的流体动画com.android.support:design:23.1.0,然后我更新到23.1.1了,动画变得非常缓慢而且根本没有活泼.

在源代码中android.support.design.widget.AppBarLayout,我将问题放在animateOffsetTo(下public static class Behavior extends HeaderBehavior<AppBarLayout>)中,在版本23.1.0中是这样的:

private void animateOffsetTo(final CoordinatorLayout coordinatorLayout,
    final AppBarLayout child, int offset) {
   if (mAnimator == null) {
       mAnimator = ViewUtils.createAnimator();
       mAnimator.setInterpolator(AnimationUtils.DECELERATE_INTERPOLATOR);
       mAnimator.setUpdateListener(new ValueAnimatorCompat.AnimatorUpdateListener() {

           @Override
           public void onAnimationUpdate(ValueAnimatorCompat animator) {
               setHeaderTopBottomOffset(coordinatorLayout, child,
                    animator.getAnimatedIntValue());
           }
       });
   } else {
       mAnimator.cancel();
   }
   mAnimator.setIntValues(getTopBottomOffsetForScrollingSibling(), offset);
   mAnimator.start();
}
Run Code Online (Sandbox Code Playgroud)

在版本23.1.1中是这样的:

private void animateOffsetTo(final CoordinatorLayout coordinatorLayout,
    final AppBarLayout child, final int offset) {
   final …
Run Code Online (Sandbox Code Playgroud)

android android-support-library android-support-design

43
推荐指数
1
解决办法
3257
查看次数

自定义字体TextView的性能问题

我有一个自定义TextView,具有个性化的字体属性:

public class TextViewPlus extends TextView {
    private static final String TAG = "TextViewPlus";
    public TextViewPlus(Context context) {
        super(context);
    }
    public TextViewPlus(Context context, AttributeSet attrs) {
        // This is called all the time I scroll my ListView
        // and it make it very slow. 
        super(context, attrs);
        setCustomFont(context, attrs);
    }
    public TextViewPlus(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        setCustomFont(context, attrs);
    }
    private void setCustomFont(Context ctx, AttributeSet attrs) {
        TypedArray a = ctx.obtainStyledAttributes(attrs, R.styleable.TextViewPlus);
        String customFont = a.getString(R.styleable.TextViewPlus_customFont);
        setCustomFont(ctx, …
Run Code Online (Sandbox Code Playgroud)

performance android textview

23
推荐指数
1
解决办法
5033
查看次数

在Android中设置锁定屏幕背景(如Spotify do)

我知道这个主题已经这里这里讨论,答案似乎是不可能的.

但我最近在我的Nexus 4(4.4.2)中安装了Spotify,似乎有可能.当我在Spotify中听一首歌时,锁屏背景会改变我正在收听的专辑的封面(见截图).

我的理论是:当手机被锁定时,他们用专辑封面更改手机壁纸,以便更改锁定屏幕背景,然后当手机解锁时,它们会退回前一个.但这不是他们如何做到的,因为在Spotify的权限列表中没有"android.permission.SET_WALLPAPER"...... :(

他们是如何做到的呢?一些理论?

屏幕截图锁屏 屏幕截图锁屏

android

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

Galaxy S4上的接近传感器(Air Gestures)

新三星Galaxy S4具有和有趣的新类型的手势称为"的空气手势 "使用红外传感器来处理在屏幕的前面的用户的手移动,加入了" 预接触 '/’ 接近 "事件,在至极手指在触摸之前检测到.

我想在我的一个应用程序中使用这个" 浮动触摸 "事件.我在谷歌和三星开发者中心都搜索过,但我找不到任何关于它的API或信息.

API可用还是太早?有人有任何链接/信息吗?

http://www.samsung.com/global/microsite/galaxys4/lifetask.html#page=airview

空中手势

android gesture galaxy android-sensors samsung-mobile-sdk

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

渲染期间遇到EGL错误12291 EGL_BAD_ALLOC

我有一个处理图像的动态壁纸应用程序.我在Play商店中收到了一些崩溃报告(但没有在fabric.io中),这个堆栈跟踪:

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'samsung/hero2ltexx/hero2lte:6.0.1/MMB29K/G935FXXU1APDN:user/release-keys'
Revision: '9'
ABI: 'arm64'
pid: 15250, tid: 15331, name: RenderThread  >>> com.xxxx.xxxxx <<<
signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
Abort message: 'Encountered EGL error 12291 EGL_BAD_ALLOC during rendering'
    x0   0000000000000000  x1   0000000000003be3  x2   0000000000000006  x3   0000000000000000
    x4   0000000000000000  x5   0000000000000001  x6   0000000000000000  x7   0000000000000000
    x8   0000000000000083  x9   fefeff7e6032ce0b  x10  7f7f7f7f7f7fff7f  x11  0101010101010101
    x12  0000000000000010  x13  0000007f6f425bdc  x14 …
Run Code Online (Sandbox Code Playgroud)

android

10
推荐指数
1
解决办法
3306
查看次数

房间@Relation选择限制

在以下场景中:

public class ChatData {
    @Embedded public ChatEntity chat;
    @Relation(parentColumn = "chat_id", entityColumn = "chat_id", entity = MessageEntity.class) public List<MessageEntity> messages;
}
Run Code Online (Sandbox Code Playgroud)

使用 DAO:

@Dao
public interface JoinDAO {
    @Transaction
    @Query("SELECT * FROM chat")
    List<ChatData> getChats();
}
Run Code Online (Sandbox Code Playgroud)

如何将 MessageEntity List 的选择限制为仅 n 行,而不是数据库中的所有行?有可能吗?

在这种情况下,消息实体列表可能非常大,每个聊天实体有数百个消息实体。我想获取所有 ChatEntity,但将选择限制为仅 10 个 MessageEntity。

android android-room

6
推荐指数
0
解决办法
440
查看次数

在smbclient放置期间的进度条

我正在尝试使用smbclient put在远程复制期间显示进度条,可能使用pv对话框,或任何其他选项.

smbclient-put命令工作正常:

smbclient //usbrouter/backup --user=myusername mypassword -c "put /media/DOC/BackupAuto/work_backup.tar.gz work_backup.tar.gz"
Run Code Online (Sandbox Code Playgroud)

但我找不到任何方式显示副本的进度.有人有解决方案/替代方案吗?

谢谢.

linux bash

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

Galaxy S4上的浮动触摸

三星Galaxy S4具有“ 浮动触摸 ”功能,即使不触摸屏幕也可以检测到手指。

btn1当手指经过时,我想在按钮()上触发一个事件。

我尝试使用OnHoverListener,但是onHover在需要的事件MotionEventis MotionEvent.ACTION_HOVER_ENTERMotionEvent.ACTION_HOVER_EXITor 时从未被调用MotionEvent.ACTION_HOVER_MOVE

这是我的代码:

btn1.setOnHoverListener(new OnHoverListener() {
@Override
public boolean onHover(View v, MotionEvent event) {
    Log.d("FloatingTouch", "onHover: "+event.getAction());
    switch (event.getAction()) {
      case MotionEvent.ACTION_HOVER_ENTER:
          Log.d("FloatingTouch", "ACTION_HOVER_ENTER" );
          return true;
      case MotionEvent.ACTION_HOVER_MOVE:
          Log.d("FloatingTouch", "ACTION_HOVER_MOVE" );
          return true;
      case MotionEvent.ACTION_HOVER_EXIT:
          Log.d("FloatingTouch", "ACTION_HOVER_EXIT" );
          break;
      default:
          break;
    }
    return false;
}
});
Run Code Online (Sandbox Code Playgroud)

我想念什么吗?也许需要许可?

android hover galaxy samsung-mobile

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

ViewPager滚动半屏

我有一个片段列表,我必须放在ViewPager中(到目前为止没问题).

ArrayList<Fragment>  fragmentList = new ArrayList<Fragment>();
fragmentList.add(new fragment1());
fragmentList.add(new fragment2());
fragmentList.add(new fragment3());
fragmentList.add(new fragment4());
FragmentAdapter mAdapter = new FragmentAdapter( mFragmentManager, fragmentList);
mPager = (ViewPager) view.findViewById(R.id.pager_items_list);
mPager.setCurrentItem(0);
mPager.setAdapter(mAdapter);
mPager.setOnPageChangeListener(pageChangeListener);
Run Code Online (Sandbox Code Playgroud)

适配器

public class FragmentAdapter extends FragmentStatePagerAdapter {
    ArrayList<Fragment> fragmentsList;
    public FragmentAdapter(FragmentManager fm, ArrayList<Fragment> fragmentsList) {
        super(fm);
        this.fragmentsList = fragmentsList;
    }
    @Override
    public int getCount() { 
        return fragmentsList.size(); 
    }       
    @Override
    public Fragment getItem(int position) {
        if (position<fragmentsList.size() & fragmentsList.get(position)!=null) {
            return fragmentsList.get(position);
        }
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

我需要的是让ViewPager在屏幕上显示两个项目,但每次只滚动一个.

这张图片可以帮我解释一下我的意思: 半屏滚动ViewPager

android android-viewpager

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

Android高级动画

我正在寻找一个教程/指南/解释如何用Android 创建一些高级动画的东西.

我知道我可以使用" 查看动画 " 创建基本动画,但我正在寻找更复杂的东西,如爆炸,火焰燃烧或行走的人.

您认为最佳方法是什么?我应该使用" 可绘制动画 "并逐帧绘制还是有更好/更快的技术?你用什么?

animation android view drawable

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