小编Dat*_*shi的帖子

Universal Image loader有时无法加载图像

我正在使用通用图像加载器,我每天都会收到大量无法为用户加载的图像.我正在使用此代码将错误归结为分析.

public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
  try
  {
    String fail = failReason.getType().toString();
    String fail4 = failReason.getCause().toString();
    String sum = fail + " " + fail4;
    EasyTracker.getTracker().sendException(sum, false);
  }
  catch (Exception e)
  {
    EasyTracker.getTracker().sendException(e.getMessage(), false);
  }
}
Run Code Online (Sandbox Code Playgroud)

大部分时间它捕获异常,因为getType或getCause为null.在具有2.1-2.3安卓版本的设备上可以看到此问题,但有一些报告来自较新版本,如4.0.4甚至4.2.2.所以我无法确定导致图像无法加载的原因

另一个问题是IO_ERROR java.io.EOFException,主要出现在较新的Android版本上.

第三个最常见的错误是out_of_memory错误...我试图加载的图像不大于1mb,但我需要有ScaleType.Exactly,但是在加载更大的图像时我不会将它们缓存在内存或光盘中,以减少out_of_memory的可能性,但它仍然经常发生.

我的配置:

ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(xxx.getApplicationContext())
.threadPoolSize(4)
.memoryCache(new WeakMemoryCache())
.imageDownloader(new BaseImageDownloader(xxx.getApplicationContext(),10 * 1000, 30 * 1000)) 
.build();

if(!ImageLoader.getInstance().isInited())
            ImageLoader.getInstance().init(config);

// options is used for images smaller in size (5kb-150kb)
options = new DisplayImageOptions.Builder()
.cacheInMemory() …
Run Code Online (Sandbox Code Playgroud)

android universal-image-loader

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

如何在活动转换的共享元素上实现放大动画

我希望在活动转换的共享元素上实现放大动画,就像在此链接中一样.

但是找不到任何关于这种特定效果的好参考以及如何实现它.这是自定义转换还是默认转换?也许任何人都可以帮助或发布更详细的教程,而不是官方文档.

android android-animation material-design shared-element-transition

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

UITableViewCell imageView填充

我想为UITableView单元格imageView设置边距或填充,我该怎么做?随着heightForRowAtIndexPath我只能设置行高.如果我增加它,它只会放大单元格中的图像.

这是我的cellForRow方法

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *cellID = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID] autorelease];
        cell.textLabel.numberOfLines = 1;
        cell.textLabel.font = [UIFont systemFontOfSize:kSystemFontSize];
        cell.accessoryType = UITableViewCellAccessoryNone;
        cell.textLabel.textColor = [UIColor whiteColor];
    }
    cell.textLabel.text = [_dataArray objectAtIndex:indexPath.row];
    cell.imageView.image = [UIImage imageNamed:[_imageArray objectAtIndex:indexPath.row]];
    cell.backgroundColor = [UIColor clearColor];

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

目前我只知道一种方法,我可以做到这一点 - 使用photoshop或类似的程序缩小图像的图像内容,同时保持.但是这种方法需要花费很多时间,我想应该有更简单的方法来做到这一点.

cocoa-touch ios

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

从椭圆曲线点的x和y值生成PublicKey

我试图在我的应用程序中生成共享密钥,如下所示:

public static byte[] generateSharedSecret(PrivateKey privateKey PublicKey publicKey) {
    KeyAgreement keyAgreement = KeyAgreement.getInstance("ECDH", "SC");
    keyAgreement.init(privateKey);
    keyAgreement.doPhase(publicKey, true);
    return keyAgreement.generateSecret();
} 
Run Code Online (Sandbox Code Playgroud)

这工作正常,但PublicKey我在这里使用的应该来自​​后端.

后端只是向我发送椭圆曲线上的点xy值,现在我应该从中生成PublicKey.但我无法弄明白!如何PublicKey从这两个值创建实例?

android bouncycastle spongycastle

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

让用户裁剪图像

我很难弄清楚如何让用户裁剪图片.我想给位图变量加载位图以在将其设置为壁纸之前裁剪图片.但我没有这样做......这就是我尝试过的.

第一版.=按预期工作但返回的图像分辨率较差.将输出更改为更高的值无济于事.正如我在一些帖子中看到的那样,不建议使用相机,因为并非所有设备都支持此功能.

Intent intent = new Intent("com.android.camera.action.CROP");  
String path = Images.Media.insertImage(context.getContentResolver(), loaded,null, null);
Uri uri = Uri.parse(path);              
intent.setData(uri);  
intent.putExtra("crop", "true");  
intent.putExtra("aspectX", 1);  
intent.putExtra("aspectY", 1);  
intent.putExtra("outputX", 300);  
intent.putExtra("outputY", 300);  
intent.putExtra("noFaceDetection", true);  
intent.putExtra("return-data", true);                                  
startActivityForResult(intent, 2);
Run Code Online (Sandbox Code Playgroud)

第二.加载图像选择器,然后裁剪.如何将其配置为直接在我的图像上加载裁剪?就像在版本1中一样

Intent photoPickerIntent = new Intent(MediaStore.ACTION_PICK);
photoPickerIntent.setData(uri);
photoPickerIntent.putExtra("crop", "true");
photoPickerIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
photoPickerIntent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());
startActivityForResult(photoPickerIntent, 2);
Run Code Online (Sandbox Code Playgroud)

并且onActivity结果

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode != RESULT_OK) { return; }
    if(requestCode == 2) {
        Bundle extras = data.getExtras();  
        if(extras != null ) {  
            Bitmap …
Run Code Online (Sandbox Code Playgroud)

android crop android-intent

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

OpenGL"无效的操作错误"在android手机上的glDrawElements函数之后

我无法在我的手机上运行我的应用程序,我找到了错误,但缺乏编程知识和英语修复它.应用程序在模拟器上完美运行,在opengl中也没有任何代码错误.然而在手机上一切正常,没有任何错误,但没有显示我想绘制的opengl元素.我心中已经加入glGetError几乎everythere在我的代码,发现1282生成的错误后,glDrawElements这是GL_INVALID_OPERATION.

GL_INVALID_OPERATION 如果将非零缓冲区对象名称绑定到已启用的数组或元素数组并且当前映射了缓冲区对象的数据存储,则会生成.

GL_INVALID_OPERATION 如果在执行glBegin和相应的glEnd之间执行glDrawElements,则会生成.

我的代码中没有glBegin或glEnd,所以我想问题出在我的indexbuffer中.下面我介绍你使用indexbuffer.

private ShortBuffer _indexBuffer;

    public void onDrawFrame(GL10 gl) {
    FramesPerSecond.StartCounter();
    gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
    gl.glVertexPointer(3, GL10.GL_FLOAT, 0, _vertexBuffer);
    gl.glBindTexture(GL10.GL_TEXTURE_2D, textures[0]);
    gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
    gl.glTexCoordPointer(2, GL10.GL_FLOAT, 0, textureBuffer);

    for (int i = 1; i <= 10; i++) {
        gl.glLoadIdentity();
        gl.glTranslatef(0.0f, -1f, -1.0f + -1.5f * i);

        gl.glRotatef(-_xAngle, 1f, 0f, 0f);
        gl.glRotatef(-_yAngle, 0f, 1f, 0f);
        gl.glDrawElements(GL10.GL_TRIANGLES, _nrOfVertices, GL10.GL_UNSIGNED_SHORT, _indexBuffer);            
        Log.e("Warning", " error code " +gl.glGetError());
    }
Run Code Online (Sandbox Code Playgroud)

我的对象初始化函数中的缓冲区代码:

    short[] indeksai = new short[] {
            0, …
Run Code Online (Sandbox Code Playgroud)

java android opengl-es

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

带有appbar_scrolling_behaviour的appbar下方的BottomSheet

我想将我的bottomsheet扩展至appbar. 我有viewpager标签,viewpagerappbar_scrolling_view_behavior,所以里面的列表被滚动toolbar并折叠起来。但是底部工作表被展开了,这是我不想拥有的行为。基本上我希望折叠bottomsheet保持在相同的高度,并且在展开模式下它应该只扩展到toolbar,无论是否toolbar折叠。

这是我的 xml 的样子。这是有效的,但底部的床单也会以这种方式对appbar折叠做出反应。

如果我从第二删除行为CoordinatorLayoutbottomsheet停留在地方,但被扩展到全屏。

<android.support.design.widget.CoordinatorLayout android:id="@+id/coordinator"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme.AppBarOverlay">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:layout_scrollFlags="scroll|enterAlways" />

        <android.support.design.widget.TabLayout
            android:id="@+id/tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

    </android.support.design.widget.AppBarLayout>

    <FrameLayout
        android:id="@+id/loadingContainer"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">

      ... content with viewpager

    </FrameLayout>

    <android.support.design.widget.CoordinatorLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">

        <LinearLayout
            android:id="@+id/bottomSheet"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:behavior_hideable="false"
            app:behavior_peekHeight="55dp"
            app:layout_behavior="@string/bottom_sheet_behavior"/>

    </android.support.design.widget.CoordinatorLayout>

</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

android android-coordinatorlayout android-appbarlayout bottom-sheet

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

在ios中重绘视图

是否可以重绘整个视图.

我需要它来完成我的语言设置.问题是语言只会在再次绘制的视图后发生变化.就像你没有设置然后再次进入,然后语言改变了.但是当你保存一切时,语言保持不变.

所以,我应该如何重绘我的看法,或者最好整个应用程序,语言的变化后发现?

objective-c ios

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

UISwitch在UIScrollView中没有响应

我遇到了奇怪的错误,并且不知道为什么会这样.

我有UIScrollView,在其中我有12个视图.其中大多数都包含UISwitch按钮和标签.视图大小是动态的(取决于label.text的长度).除了底部的两个视图外,一切都有效.它们会显示出来,按预期初始化.然而,它们中的UISwitch不起作用,点击或触摸它们不会做任何事情.他们两个都不例外(所有这些都是复制粘贴).我有双重检查IBOutlets,他们没事.我怀疑scrollView有问题.也许超出某些程度它不再接受输入?虽然我可以向上和向下滚动,但所有内容都按预期显示.

任何想法要检查什么?

我用第一个视图切换了这两个视图.并且更多的底层视图没有响应,就像有一条线,ui没有响应.想法?

cocoa-touch objective-c ios

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

十六进制的枚举类型使用Java返回错误的值?

我在下面的代码中使用以下枚举类型:

public static enum PanelType
 {
   PAS8((byte)0xA6), PAS83((byte)0xA7);

  private byte code;

  private PanelType(byte code)
  {
   this.code=code;
  }

  public byte getCode(){
   return code;
  }
 }
Run Code Online (Sandbox Code Playgroud)

但是,当我在我的方法中尝试使用它时:

 for (PanelType type:PanelType.values())
 {
   if (decoded[3]==type.getCode())
   return type;
 }
Run Code Online (Sandbox Code Playgroud)

我正在为:type.getCode()method 返回不正确的值.它返回-90而不是166,这正是我所期待的.

我知道FFFF FFFF FFFF FFA6 = -90,但为什么0xA6作为负数返回?

java hex

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