我正在尝试将外部mp3下载到内部存储中.但是,我试图下载的文件很大,所以我试图以1MB的块下载它们,以便您可以在下载其余部分时开始播放它们.这是我的流代码:
InputStream is = null;
OutputStream os = null;
try {
HttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet( url );
HttpResponse response = client.execute( get );
MyLog.d( "Connection established" );
byte[] buffer = new byte[8192];
is = new BufferedInputStream( response.getEntity().getContent(), buffer.length );
os = openFileOutput( filename, MODE_PRIVATE );
int size;
int totalSize = 0;
while (( size = is.read( buffer ) ) != -1 && totalSize < 1048576) {
os.write( buffer, 0, size );
totalSize += size; …Run Code Online (Sandbox Code Playgroud) 我有一个Gallery完整的ImageViews,ImageViews是可以缩放和可翻译的.我的目标是,一旦一个ImageView不能再转换为左/右,Gallery就会滚动.因此有时ImageView需要处理触摸事件,有时Gallery需要处理触摸事件.我在我ImageView的onTouchEvent方法中有逻辑,因为当我希望发生切换时,我会得到意想不到的结果.我会在显示代码后解释问题:
// PinchZoomImageView.java
@Override
public boolean onTouchEvent( MotionEvent event ) {
Log.i( "PinchZoomImageView", "IM GETTING TOUCHED!" );
if ( isPassThroughTouchEvent() ) {
Log.i( "PinchZoomImageView", "IM RETURNING FALSE!" );
return false;
}
getScaleDetector().onTouchEvent( event );
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN: {
final float x = event.getX();
final float y = event.getY();
setLastTouchX( x );
setLastTouchY( y );
setActivePointerId( event.getPointerId( 0 ) …Run Code Online (Sandbox Code Playgroud) 我需要检测EditText中的文本更改.我已经尝试过TextWatcher,但是它没有按照我期望的方式工作.采用onTextChanged方法:
public void onTextChanged( CharSequence s, int start, int before, int count )
假设我在EditText中已经有了"John"文本.如果按另一个键,"e",s将是"Johne",start将是0,before将是4,并且count将是5.我希望这种方法工作的方式将是EditText之前的内容与什么之间的区别它即将成为.
所以我希望:
s = "Johne"
start = 4 // inserting character at index = 4
before = 0 // adding a character, so there was nothing there before
count = 1 // inserting one character
Run Code Online (Sandbox Code Playgroud)
我需要能够在每次按下按键时检测个别更改.因此,如果我有文本"John",我需要知道索引4处添加了"e".如果我退格"e",我需要知道"e"已从索引4中删除.如果我将光标放在"J"之后"和退格,我需要知道"J"已从索引0中删除.如果我把"G"放在"J"中,我想知道"G"在索引0处替换为"J".
我怎样才能做到这一点?我想不出一个可靠的方法来做到这一点.
我正在写一个相机应用程序,我遇到了S3的问题.每当我开始录制时,显示屏都会变成垃圾(见下面的截图).然后,当我停止录制时,我得到一个例外:
10-02 13:36:31.647: E/MediaRecorder(24283): stop failed: -1007
10-02 13:36:31.647: D/AndroidRuntime(24283): Shutting down VM
10-02 13:36:31.647: W/dalvikvm(24283): threadid=1: thread exiting with uncaught exception (group=0x40c49a68)
10-02 13:36:31.647: E/AndroidRuntime(24283): FATAL EXCEPTION: main
10-02 13:36:31.647: E/AndroidRuntime(24283): java.lang.RuntimeException: stop failed.
10-02 13:36:31.647: E/AndroidRuntime(24283): at android.media.MediaRecorder.native_stop(Native Method)
10-02 13:36:31.647: E/AndroidRuntime(24283): at android.media.MediaRecorder.stop(MediaRecorder.java:742)
10-02 13:36:31.647: E/AndroidRuntime(24283): at com.myapp.android.ui.camera.NewCameraActivity.stopRecording(NewCameraActivity.java:178)
10-02 13:36:31.647: E/AndroidRuntime(24283): at com.myapp.android.ui.camera.NewCameraActivity.toggleRecording(NewCameraActivity.java:189)
10-02 13:36:31.647: E/AndroidRuntime(24283): at com.myapp.android.ui.camera.NewCameraActivity.onClick(NewCameraActivity.java:97)
10-02 13:36:31.647: E/AndroidRuntime(24283): at android.view.View.performClick(View.java:3565)
10-02 13:36:31.647: E/AndroidRuntime(24283): at android.view.View$PerformClick.run(View.java:14165)
10-02 13:36:31.647: E/AndroidRuntime(24283): at android.os.Handler.handleCallback(Handler.java:605)
10-02 13:36:31.647: E/AndroidRuntime(24283): at …Run Code Online (Sandbox Code Playgroud) 我在我的应用程序中使用Nucleus库遵循 MVP 架构,并尝试模拟我的 Fragment 的 Presenter。模拟及其覆盖的调用工作得很好,但我的verify调用很奇怪。首先,这是我的测试:
private User mUser;
private ProfilePresenter mPresenterMock;
@Override
public void setUp() throws Exception {
super.setUp();
mUser = TestUtils.generateTestUser();
mPresenterMock = mock(ProfilePresenter.class);
ProfileFragment fragment = ProfileFragment.newInstance();
fragment.setPresenterFactory(() -> mPresenterMock);
setFragment(fragment);
}
@Test
public void testInitialValues() {
doAnswer(invocation -> {
getFragment().onUserLoaded(mUser);
return null;
}).when(mPresenterMock).loadUser(anyBoolean());
startFragment();
verify(mPresenterMock).loadUser(eq(false));
onView(withId(R.id.empty)).check(matches(not(withEffectiveVisibility(VISIBLE))));
assertEquals(mUser.getFullName(), getFragment().mToolbar.getTitle());
assertEquals(1, getFragment().mVideosRecyclerView.getChildCount());
}
Run Code Online (Sandbox Code Playgroud)
我收到一条测试失败消息verify:
Argument(s) are different! Wanted:
profilePresenter.start(false);
Actual invocation has different arguments:
profilePresenter.start(1);
Run Code Online (Sandbox Code Playgroud)
它似乎正在做的是验证模拟类中的方法,如果它是模拟对象,则不应出现这种情况。这是loadUser我的 Presenter 中调用的方法start …
如果我File.list()在BookGenerator.java中使用Android 2.2和调用方法,那么页面和章节按照确切的顺序排列,但每当我在Android 4.0上执行时,它都会给出反向页面列表或反向页面顺序.
2.2和4.0之间是否存在兼容性问题?
java android android-webview android-2.2-froyo android-4.0-ice-cream-sandwich
我正在将照片/视频捕捉整合到我的应用中,并且遇到视频捕捉问题.每当视频录制开始时,屏幕会闪烁,我会暂停一下,然后开始录制视频.但是,使用手机的相机应用程序,根本没有闪烁/暂停.
此外,我的相机预览显示会recorder.start()在调用后立即调整大小.我不明白为什么会这样.它使预览失真(一切看起来都是压扁和更宽).
我的问题:如何在开始视频录制时阻止闪烁/暂停?如何防止recorder.start()调整预览显示的大小?
每当启用"视频模式"时,initRecording()立即调用.一旦用户按下按钮,startRecording()就会被调用.最后,当再次按下该按钮时,将stopRecording()被调用.不太重要的是,当切换回"图像模式"时,destroyRecorder()被称为.
@Override
public void onResume() {
super.onResume();
Camera camera = null;
try {
camera = Camera.open();
}
catch (Exception e) {
// Camera isn't available
Toast.makeText( getActivity(), "Camera is not available at this time.", Toast.LENGTH_SHORT ).show();
getActivity().finish();
return;
}
if ( Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD ) {
setCameraDisplayOrientation( camera );
}
else {
camera.setDisplayOrientation( 90 );
}
setCamera( camera );
setCameraZoomDisplay( camera );
if ( getSurfaceHolder() …Run Code Online (Sandbox Code Playgroud) 当AlarmManager用于设置警报时,除非您设置了确切的警报,否则可能会在指定时间后的某个时间触发警报.对这种延迟的范围有什么保证吗?我想成为一个负责任的开发人员,如果延迟不超过一分钟,我就不会使用确切的时间.但我找不到任何有关文档延迟的规范.我很感激资源记录了延迟功能及其时间规格.
显示软键盘时,它会更改视图的高度参数.我希望它忽略键盘甚至显示,从不调整我的布局大小,只是简单地在我的活动上显示键盘"按原样".我可以在清单中放置一个标志来忽略软键盘以进行布局吗?
我为背景区域创建了一个9patch,它似乎是拉伸的区域,我没有标记为拉伸.我有它,所以垂直它应该从中间拉伸1个像素,但它仍然拉伸顶部和底部边界.这是我的9patch,放在drawable文件夹中:

background以下是作为布局属性放置的结果图像:

为什么它会拉伸顶部和底部边框?我希望这些在顶部保持2个像素,在底部保持4个像素,但是它的拉伸.
如果您想尝试一下,可以在此处下载图像.重命名它,所以它有一个.9.png扩展,把它作为background一个View约100dp高大,采取截图,然后放大,你可以看到我所看到的.
android ×10
android-4.0-ice-cream-sandwich ×1
galaxy ×1
inputstream ×1
java ×1
mockito ×1
nine-patch ×1
surfaceview ×1
textwatcher ×1