小编Nit*_*tri的帖子

从Glide库中的缓存中删除图像

我在我的一个项目中使用Glide来显示文件中的图像.

下面是我的代码如何显示图像:

Glide.with(DemoActivity.this)
     .load(Uri.parse("file://" + imagePath))
     .into(mImage);
Run Code Online (Sandbox Code Playgroud)

此位置(imagePath)的图像不断变化.默认情况下,滑动缓存它在中显示的图像ImageView.因此,Glide正在缓存中显示该位置新图像的第一张图像.

如果我imagePath使用具有相同名称的其他图像更改位置处的图像,则Glide将显示第一个图像而不是新图像.

两个查询是:

  1. 是否可以始终从文件中的图像而不是缓存?这样问题就解决了.

  2. 在获取新替换的图像之前,是否可以从缓存中清除图像?这也将解决问题.

android caching android-glide

55
推荐指数
13
解决办法
6万
查看次数

按钮上的单击,按下和释放事件

如何检测按钮的单击,按下和释放状态.我想在这些状态下执行不同的功能.点击我想调用function1,按下我要调用function2,接收时我想调用function3.

我们可以使用检测点击状态View.OnClickListener.我们可以使用View.OnTouchListener和处理ACTION_DOWN和检测Button的Pressed和Released状态ACTION_UP.我能够单独检测这些状态,但不能一起检测.

下面是OnCLickListener的代码.

button.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            System.out.println(" clicked ");
        }
    });
Run Code Online (Sandbox Code Playgroud)

下面是OnTouchListener的代码.

button.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            switch(event.getAction()) {
                case MotionEvent.ACTION_DOWN:
                    System.out.println(" pressed ");
                    return true;
                case MotionEvent.ACTION_UP:
                    System.out.println(" released ");
                    return true;
            }
            return false;
        }
    });
Run Code Online (Sandbox Code Playgroud)

当我在Button上设置单击并触摸侦听器时,Click事件永远不会被调用.相反,我接受了压制和释放状态.

我怎样才能一起处理这三个州?

编辑:

我添加了我使用的OnClickListener和OnTouchListener代码.

android ontouchlistener onclicklistener

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

Retrofit:在android中向服务器发送POST请求

我正在使用Retrofit来调用API.我正在向API发送一个帖子请求,但在回调中我得到像这样{}的空JSON.

下面是RetrofitService的代码

@POST("/com/searchusers.php")
void getUser(@Body JSONObject searchstring, Callback<JSONObject> callBack);
Run Code Online (Sandbox Code Playgroud)

searchstring JSON就像这样{"search":"nitesh"}.作为回应,我应该得到用户"nitesh"的细节.

以下是发送POST请求的代码

RetrofitService mRetrofitService = app.getRetrofitService();
    mRetrofitService.getUser(user, new Callback<JSONObject>() {

        @Override
        public void success(JSONObject result, Response arg1) {
            System.out.println("success, result: " + result);
        }

        @Override
        public void failure(RetrofitError error) {
            System.out.println("failure, error: " + error);
        }
    });
Run Code Online (Sandbox Code Playgroud)

我得到了这个输出成功,结果:{}

预期的输出是成功的,结果:{"name":"nitesh",......其余的细节}

编辑: 我尝试使用Response而不是像这样的JSONObject CallBack<Response>,然后我将原始响应转换为String,我得到了预期的结果.但问题是它在String中,我想要JSONObject中的响应.

如何使用CallBack<JSONObject>...... 得到确切的结果?

post android json retrofit

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

在ViewPager滚动上翻译浮动操作按钮

我有一个带有3个选项卡的屏幕,下面有一个ViewPager,有3个片段,右下角有一个浮动操作按钮.

当第一个标签是当前标签时,我想在右下角显示FAB.当第二个标签是当前标签时,我想在底部中心显示FAB.当第三个选项卡是当前选项卡时,我想隐藏FAB.

当视图寻呼机滚动时,即基于滚动量,从右下到中心或反之亦然的平移动画应该发生.

以下是我的尝试.

mViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
            ViewCompat.animate(mFAB)
                    .translationX(-translate)
                    .withLayer()
                    .setDuration(0)
                    .setInterpolator(new LinearInterpolator())
                    .start();
        }

        @Override
        public void onPageSelected(int position) {
            mTabLayout.getTabAt(position).select();
        }

        @Override
        public void onPageScrollStateChanged(int state) {

        }
    });
Run Code Online (Sandbox Code Playgroud)

这是最好的方法吗?如果是,那么translate变量的值应该是多少?

请帮我实现这个.

作为参考,您可以查看Android Lollipop Call应用程序.FAB以类似的方式显示拨号器动画.对于第一个标签,它在右下方,然后是中间标签,它位于中间.这正是我想要的.

animation android floating-action-button

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

在 ListView 上左右滑动

你有没有看到 ios imessage 应用程序。在这个应用程序中,我们需要向左滑动才能查看聊天消息的时间戳。最初它们是隐藏的,但是当我们向左滑动时,隐藏的时间戳就会显示出来。我也想在我的 android 应用程序中实现这一点。

在此处输入图片说明

当我们向左滑动时,灰色气泡中的消息保持固定,但是蓝色气泡中的消息向左滑动以显示时间戳。

以下是我迄今为止尝试过的。

SwipeDetector.java - 它检测滑动

public class SwipeDetector implements View.OnTouchListener {

private SwipeListener swipeListener;
private int hundred;

public static enum Action {
    LR, // Left to right
    RL, // Right to left
    TB, // Top to bottom
    BT, // Bottom to top
    None // Action not found
}

private static final int HORIZONTAL_MIN_DISTANCE = 30; // The minimum
// distance for
// horizontal swipe
private static final int VERTICAL_MIN_DISTANCE = 80; // The minimum …
Run Code Online (Sandbox Code Playgroud)

animation android listview swipe-gesture

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

如果应用程序被杀,则不会在MI手机中收到GCM推送通知

我在我的项目中集成了GCM以接收来自服务器的推送通知.我能够在所有设备(Nexus,三星等)中成功接收推送通知,但是,我没有在我的小米MI手机上收到通知.

当应用程序正在运行或处于后台时,我收到通知,但是如果我杀了应用程序(通过将应用程序从最近的应用程序中移开),那么我就不会收到任何通知.

在预安装的安全应用程序中,有一个自动启动功能.某些应用程序启用了此自动启动功能,而有些则没有.我的应用程序已将此自动启动功能关闭.如果我为我的应用程序打开自动启动,那么即使我杀了应用程序,我也会开始接收通知.

我该如何解决这个问题?请帮帮我.

notifications android google-cloud-messaging

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

MIME类型images/*正在显示图像和视频

我试图使用Intent从SD卡获取图像.以下是我的代码:

Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Picture"), SELECT_PICTURE);
Run Code Online (Sandbox Code Playgroud)

当我在三星上运行我的应用程序时,它会显示要选择的图像,但是当我在Micromax上运行相同的代码时,它会显示图像和视频.

我想只选择图像.我怎么解决这个问题?

android mime-types

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

滑动以在ListView中显示按钮,就像IOS一样

我试图在Android中实现IOS Mail像滑动效果.我已经浏览了几个链接和博客,但没有什么比IOS Mail应用程序更好.我也搜索过,但没有任何帮助.

我试过以下链接:

https://github.com/47deg/android-swipelistview
https://github.com/dharanikumar/IOS_7-SwipeGesture-Android
https://github.com/baoyongzhang/SwipeMenuListView

这就是我要的:

在此输入图像描述

在此输入图像描述

如何在Android ListView中应用这些效果?是否有任何库或某些代码可能有用?

android listview swipe-gesture

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

仅使用图标设计支持库选项卡

我正在使用设计支持库来创建选项卡.默认情况下,它会创建带文本的选项 如何创建仅带图标的标签?此外,如果它是当前选定的选项卡,我想更改图标颜色.

在此输入图像描述

tabs android android-tablayout

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

以前的片段在新片段下可见

我有一个带有ViewPager的TabLayout.ViewPager有四个片段F1,F2,F3和F4.F1包含一个FrameLayout,它可以有2个片段F11和F12.最初我在FrameLayout中使用以下代码添加F11.

Fragment11 fragment11 = new Fragment11();
fragment11.setArguments(getActivity().getIntent().getExtras());
getActivity().getSupportFragmentManager().beginTransaction()
                .add(R.id.fragment_container, fragment11, Constants.FRAGMENT_11)
                .commit();
Run Code Online (Sandbox Code Playgroud)

F11包含一个ListView.当我单击此ListView中的任何项目/行时,F11将替换为F12.F12是一个细节片段.

Fragment12 fragment12 = new Fragment12();
FragmentTransaction fragmentTransaction = getActivity().getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, fragment12, Constants.FRAGMENT_12)
                    .addToBackStack(null)
                    .commit();
Run Code Online (Sandbox Code Playgroud)

对于正常的应用流程,它工作正常.现在假设我现在在Fragment12中并按下主页按钮.现在我打开任何繁重的应用程序(相机或任何其他应用程序)从内存中删除我的应用程序.现在我又开始了我的应用程序.

现在有两个Fragment11和一个Fragment12可见,都在同一时间.当我按下时,Fragment12被移除,现在可以看到两个Fragment11.当我单击Fragment11的ListView行时,顶部Fragment11被Fragment12替换,但是底部Fragment11仍然存在.

这就是我想要的:当应用程序从后台到达前景时,Fragment12应该是可见的,当我按下时,应该弹出Fragment12以显示Fragment11.

我怎样才能做到这一点?

android listview android-fragments

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