我创建了一些自定义元素,我想以编程方式将它们放置在右上角(n顶部边缘的m像素和右边缘的像素).因此我需要获得屏幕宽度和屏幕高度,然后设置位置:
int px = screenWidth - m;
int py = screenHeight - n;
Run Code Online (Sandbox Code Playgroud)
如何获得screenWidth并screenHeight在主要活动?
如何以编程方式将图像(位图)调整为800*480?我已经在我的应用程序中检索到了大约1MB的图片,我需要将其缩小到800*480我已经加载了该图片并对其进行了压缩但是我该如何缩小它:
ByteArrayOutputStream bos = new ByteArrayOutputStream(8192);
photo.compress(CompressFormat.JPEG, 25, bos);
Run Code Online (Sandbox Code Playgroud) 我想创建一个缩放的位图,但我似乎得到了一个不成比例的图像.它看起来像一个正方形,而我想成为矩形.
我的代码:
Bitmap resizedBitmap = Bitmap.createScaledBitmap(myBitmap, 960, 960, false);
Run Code Online (Sandbox Code Playgroud)
我希望图像的最大值为960.我该怎么做?设置宽度null不编译.它可能很简单,但我无法绕过它.谢谢
我正在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,并以某种方式绕过这个错误,也许我会得到一个不错的速度.现在我正在缩放图像并将它们转换为可绘制的图像,但效率不高.
您好,我使用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等),而不是设备中的内容.上面的代码有效,但图像太大或太小.我想知道位图的最佳大小或宽高比,以便我可以提供合适的图像
我使用以下代码调整位图大小:
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)

下面是我的代码,用于创建所选应用程序的快捷方式.我真的没问题,应用程序工作得很好.
问题是我能够从我的应用程序创建一个带有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)
非常感谢任何线索
我有一个带有edittexts的表单和一个用于调用相机的按钮(返回一个放入imageview的位图)...从纵向模式我输入所有的edittext字段,然后单击相机按钮将我转发到相机 - 在相机中我拍照后我将返回到活动1(保持纵向 - 并且所有editext字段都恢复onRestoreInstanceState()) - 并且活动1的最后一个回调方法是onResume()(什么是好的) - 但是问题当我从这个肖像到横向模式进行方向更改时 - 回调方法如下

所以最后的回调方向改变是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) 我正在使用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)
使用通用图像加载器调整位图大小的最佳方法是什么,甚至更好,有没有一种方法可以只指定宽度,并根据比例正确缩放位图?
如何使用新的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(条形码); //我知道这一部分.