相关疑难解决方法(0)

以像素为单位获取屏幕尺寸

我创建了一些自定义元素,我想以编程方式将它们放置在右上角(n顶部边缘的m像素和右边缘的像素).因此我需要获得屏幕宽度和屏幕高度,然后设置位置:

int px = screenWidth - m;
int py = screenHeight - n;
Run Code Online (Sandbox Code Playgroud)

如何获得screenWidthscreenHeight在主要活动?

layout android screen pixel dimensions

1798
推荐指数
31
解决办法
112万
查看次数

如何将图像(位图)调整为给定大小?

如何以编程方式将图像(位图)调整为800*480?我已经在我的应用程序中检索到了大约1MB的图片,我需要将其缩小到800*480我已经加载了该图片并对其进行了压缩但是我该如何缩小它:

ByteArrayOutputStream bos = new ByteArrayOutputStream(8192);
photo.compress(CompressFormat.JPEG, 25, bos); 
Run Code Online (Sandbox Code Playgroud)

android bitmap

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

在Android中使用createScaledBitmap创建缩放位图

我想创建一个缩放的位图,但我似乎得到了一个不成比例的图像.它看起来像一个正方形,而我想成为矩形.

我的代码:

Bitmap resizedBitmap = Bitmap.createScaledBitmap(myBitmap, 960, 960, false);
Run Code Online (Sandbox Code Playgroud)

我希望图像的最大值为960.我该怎么做?设置宽度null不编译.它可能很简单,但我无法绕过它.谢谢

java android bitmap

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

Android如何做图像屏幕幻灯片?

我正在android上构建一个非常基本的图库,它显示了相机文件夹中的最后一个图像,用户可以向左滑动以查看上一个图像.

我使用viewpager完成了一个实现,使用sampleSize完成了一个pagerAdapter来缩放图像.我的问题是,实现无法像默认的图库应用程序一样高效,每次滑动图像时,您必须等待大约200毫秒才能加载下一个图像.所以基本上我对如何实现它的想法并没有成功.

我怎样才能有效地执行此操作,如果可能的话,可以使用允许稍后放大和缩小的实现?


这看起来很有希望,但我不知道如何用文件而不是drawable实现它 http://www.androidviews.net/2012/11/photoview/


编辑:

我已经设法使用photoview(一个被攻击的viewpager)提高了一点速度,但是将文件路径转换为位图或drawables需要花费太多.

我试过了dilix和iDroid Explorer建议的这两种方法:

// Method A
Drawable d = Drawable.createFromPath(imagePath);
imageView.setImageDrawable(d);

// Method B
Bitmap myBitmap = BitmapFactory.decodeFile(imagePath);
imageView.setImageBitmap(myBitmap);
Run Code Online (Sandbox Code Playgroud)

但两者都会产生错误Bitmap too large to be uploaded into a texture.我需要尽快将图像提供给imageView,并以某种方式绕过这个错误,也许我会得到一个不错的速度.现在我正在缩放图像并将它们转换为可绘制的图像,但效率不高.

java android image-processing

15
推荐指数
1
解决办法
5353
查看次数

GCM推送通知大图标大小

您好,我使用GCM在Android中实现推送通知.我正在尝试为通知设置图像而不是默认的应用程序图标.我可以使用以下代码实现此目的

if(extras.getString("src") != null){
            URL url = new URL(extras.getString("src"));
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setDoInput(true);
            connection.connect();
            InputStream input = connection.getInputStream();
            Bitmap large_icon = BitmapFactory.decodeStream(input);
            mBuilder.setLargeIcon(large_icon);
        }
Run Code Online (Sandbox Code Playgroud)

通常情况下,图像来自网络(jpg,png等),而不是设备中的内容.上面的代码有效,但图像太大或太小.我想知道位图的最佳大小或宽高比,以便我可以提供合适的图像

android android-notifications google-cloud-messaging

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

在Android中调整位图大小

我使用以下代码调整位图大小:

FileOutputStream out = new FileOutputStream("/sdcard/mods.png");
Bitmap bmp = Bitmap.createScaledBitmap(pict, (int)(pict.getWidth() / totScale),  
    (int)(pict.getHeight() / totScale), false);
bmp.compress(Bitmap.CompressFormat.PNG, 90, out);
out.close();
Run Code Online (Sandbox Code Playgroud)

从我正在使用的相机获取位图的代码如下:

mCamera.takePicture(null, null, null, new Camera.PictureCallback() {
        @Override
        public void onPictureTaken(byte[] data, Camera camera) {
            pict = BitmapFactory.decodeByteArray(data, 0, data.length);
        }
});
Run Code Online (Sandbox Code Playgroud)

第一张图是我在手机上看到的(在Astro文件管理器中),也是我在画布上绘制应用程序中的位图时的图片.这种情况发生在我测试过的每台设备上(HTC Legend和Galaxy Tab)第二张图片就是我电脑上的样子.什么导致设备上的块?


解:

这是解决我的问题的原因:而不是

pict = BitmapFactory.decodeByteArray(data, 0, data.length);
Run Code Online (Sandbox Code Playgroud)

我替换了

BitmapFactory.Options opts = new BitmapFactory.Options();               
opts.inPreferredConfig = Bitmap.Config.ARGB_8888;
pict = BitmapFactory.decodeByteArray(data, 0, data.length, opts);
Run Code Online (Sandbox Code Playgroud)


电话 电脑

camera android bitmap

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

创建快捷方式:如何使用drawable作为Icon?

下面是我的代码,用于创建所选应用程序的快捷方式.我真的没问题,应用程序工作得很好.

问题是我能够从我的应用程序创建一个带有ressource的快捷方式:

    intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(this, R.drawable.icon));
Run Code Online (Sandbox Code Playgroud)

但我真的想要一个定制的drawable.(Drawable myDrawable = .....)

我能怎么做?

   ResolveInfo launchable=adapter.getItem(position);
   final Intent shortcutIntent = new Intent();
    ActivityInfo activity=launchable.activityInfo;
    ComponentName name=new ComponentName(activity.applicationInfo.packageName,activity.name);       
    shortcutIntent.setComponent(name);
    shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    final Intent intent = new Intent();
    intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
    // Sets the custom shortcut's title
    intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, launchable.loadLabel(pm));
    // Set the custom shortcut icon
    intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(this, R.drawable.icon));

    // add the shortcut
    intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
    sendBroadcast(intent);
    finish();
Run Code Online (Sandbox Code Playgroud)

非常感谢任何线索

icons android shortcut drawable android-intent

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

活动生命周期的奇怪行为 - 在onResume()之后也onPause()调用...为什么?

我有一个带有edittexts的表单和一个用于调用相机的按钮(返回一个放入imageview的位图)...从纵向模式我输入所有的edittext字段,然后单击相机按钮将我转发到相机 - 在相机中我拍照后我将返回到活动1(保持纵向 - 并且所有editext字段都恢复onRestoreInstanceState()) - 并且活动1的最后一个回调方法是onResume()(什么是好的) - 但是问题当我从这个肖像到横向模式进行方向更改时 - 回调方法如下

DSFA

所以最后的回调方向改变是onPause().我不懂为什么?问题是onSaveInstanceState在onPause之前调用 - 所以当我回到纵向模式时,所有内容都将为空(editexts,imageview ..) - 这种奇怪的行为会在每次方向更改时继续(最后调用onPause()).

我确定这个问题必须与拍摄图像(startInentforResult ....)有关,因为所有(editext字段)在拍摄图像之前在方向更改上工作正常...有时我也可以拍摄图像并且它可以正常工作很好,但在大多数情况下不...

所以我的问题是什么是"驱动"我的活动直到onPause()方法而不是onResume()

谢谢,我真的很感激,如果有人知道解决方案,因为我已经困难了几天,无法找到解决方案.

该项目有很多类,但这是活动代码(需要注意的是,只有当我从相机应用程序中获取图像时才会出现问题,之后活动生命周期变得疯狂 - 此活动也是通过'startIntentforResult从主活动中调用的()'.我不使用'android:configChanges ="orientation | keyboardHidden"'来停止recreatioin):

public class NewCounterActivity extends Activity {

Button btnCreate;
Button btnCancel;
Button btnTakeImg;
ImageView counterImgView;
CheckBox existsDamage;

EditText inputNameFirst;
EditText inputNameLast;
EditText inputAdresse;
EditText inputCounterID;
EditText inputCounterValue;
EditText inputDescription;
TextView registerErrorMsg;

DatabaseHandler db;

//Data to be submitted
String nameFirst;
String nameLast;
String adresse;
String …
Run Code Online (Sandbox Code Playgroud)

android android-lifecycle

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

使用通用映像加载器加载后调整位图大小

我正在使用Universal Image Loader加载图像,我想缩放它以使宽度是屏幕的宽度并相应地缩放高度,这意味着在加载图像之前我知道我想要的宽度,但不是高度.因此,当我加载图像时,我想获得图像的高度和宽度,并根据屏幕的宽度使用它来缩放图像.我用来做这个的代码是这样的:

try {
    display.getSize(size);
    scaledWidth = size.x;
} catch (java.lang.NoSuchMethodError ignore) {
    scaledWidth = display.getWidth();
}

String filePath = "file://" + getBaseContext().getFilesDir().getPath().toString() + "/" + imagePath + ".png";
Bitmap bitmap = imageLoader.loadImageSync(filePath);
int height = bitmap.getHeight();
int width = bitmap.getWidth();
scaledHeight =  (int) (((scaledWidth * 1.0) / width) * height);
//Code to resize Bitmap using scaledWidth and scaledHeight
Run Code Online (Sandbox Code Playgroud)

使用通用图像加载器调整位图大小的最佳方法是什么,甚至更好,有没有一种方法可以只指定宽度,并根据比例正确缩放位图?

android bitmap universal-image-loader

6
推荐指数
2
解决办法
9248
查看次数

如何使用新的Google Vision API生成条形码并将其转换为位图?

如何使用新的Google Vision API生成条形码并将其转换为位图?

Barcode barcode = new Barcode();
Barcode.Email email = new Barcode.Email();
email.address = "my_email@gmail.com";
email.subject = "My Subject;
email.body = "My body content.";
barcode.email = email;
Run Code Online (Sandbox Code Playgroud)

//实现转换Bitmap barcodeImage = barcodeToBitmap(条形码); //我知道这一部分.

android android-version google-play-services google-vision

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