我在我的一个项目中使用Glide来显示文件中的图像.
下面是我的代码如何显示图像:
Glide.with(DemoActivity.this)
.load(Uri.parse("file://" + imagePath))
.into(mImage);
Run Code Online (Sandbox Code Playgroud)
此位置(imagePath
)的图像不断变化.默认情况下,滑动缓存它在中显示的图像ImageView
.因此,Glide正在缓存中显示该位置新图像的第一张图像.
如果我imagePath
使用具有相同名称的其他图像更改位置处的图像,则Glide将显示第一个图像而不是新图像.
两个查询是:
是否可以始终从文件中的图像而不是缓存?这样问题就解决了.
在获取新替换的图像之前,是否可以从缓存中清除图像?这也将解决问题.
如何检测按钮的单击,按下和释放状态.我想在这些状态下执行不同的功能.点击我想调用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代码.
我正在使用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>
...... 得到确切的结果?
我有一个带有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以类似的方式显示拨号器动画.对于第一个标签,它在右下方,然后是中间标签,它位于中间.这正是我想要的.
你有没有看到 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) 我在我的项目中集成了GCM以接收来自服务器的推送通知.我能够在所有设备(Nexus,三星等)中成功接收推送通知,但是,我没有在我的小米MI手机上收到通知.
当应用程序正在运行或处于后台时,我收到通知,但是如果我杀了应用程序(通过将应用程序从最近的应用程序中移开),那么我就不会收到任何通知.
在预安装的安全应用程序中,有一个自动启动功能.某些应用程序启用了此自动启动功能,而有些则没有.我的应用程序已将此自动启动功能关闭.如果我为我的应用程序打开自动启动,那么即使我杀了应用程序,我也会开始接收通知.
我该如何解决这个问题?请帮帮我.
我试图使用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中实现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中应用这些效果?是否有任何库或某些代码可能有用?
我有一个带有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.
我怎样才能做到这一点?