我正在使用自定义子类在我的应用程序中实现Material Design 底部工作表设计模式Dialog.对话框被吸引到屏幕的底部并使用y-translation窗口输入动画:
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:interpolator/decelerate_cubic">
<translate android:fromYDelta="100%"
android:toYDelta="0"
android:duration="250" />
</set>
Run Code Online (Sandbox Code Playgroud)
在早期版本的Android,这看起来不错(如果我这样说我自己):对话顺利地从屏幕的底部,并从滑入下的导航栏.
但是,在最新的5.0预览图像上,窗口动画发生在导航栏的顶部,因此对话框内容暂时与导航重叠.在这个特殊的用例中,它看起来很丑陋,很奇怪并且令人分心.
我可以在主题或代码中设置什么来防止这种情况发生?
我正在创建一个应用程序,它突发捕获图像并创建一个GIF作为输出.我的问题是从图像序列创建GIF需要很长时间,无论图像的分辨率是多少320x240.我正在使用AnimatedGifEncoder类进行GIF编码.如下链接.
我创建GIF的代码如下
private void saveGifImage() {
FileOutputStream outStream =
String fileName = "test.gif";
try {
File file = new File(Environment.getExternalStorageDirectory() + "/gif_convertor/sample/");
if (!file.exists())
file.mkdirs();
File file1 = new File(file + File.separator +
if (file1.exists()) {
} else {
try {
// file1.mkdirs();
file1.createNewFile();
} catch (Exception e) {
}
}
outStream = new FileOutputStream(file1);
Log.d("Location", file1.getPath().toString());
outStream.write(generateGIF());
outStream.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
DialogUtils.stopProgressDisplay();
}
}
private byte[] generateGIF() …Run Code Online (Sandbox Code Playgroud) 我正在使用Spring boot的WebSocketConfigurer来创建websocket,按照以下代码创建一个在线系统.我的用户将连接到它,它将继续跟踪他们的存在.
@Configuration
@EnableWebSocket
public class WebSocketServerConfiguration implements WebSocketConfigurer {
private final PresenceListener presenceListener;
Logger logger = Logger.getLogger(WebSocketServerConfiguration.class.getName());
@Autowired
public WebSocketServerConfiguration(StringRedisTemplate stringRedisTemplate){
this.presenceListener = new PresenceListener(stringRedisTemplate);
}
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(new WebSocketHandler() {
@Override
public void afterConnectionEstablished(WebSocketSession session) throws Exception {
logger.info("afterConnectionEstablished:"+session.toString());
}
@Override
public void handleMessage(WebSocketSession session, WebSocketMessage<?> message) throws Exception {
//Some code inside
}
@Override
public void handleTransportError(WebSocketSession session, Throwable exception) throws Exception {
logger.info("handleTransportError:" +session.toString());
}
@Override
public void afterConnectionClosed(WebSocketSession session, CloseStatus closeStatus) …Run Code Online (Sandbox Code Playgroud)