我想在已存储的SD卡中显示ImageView中的Bitmap图像.运行后我的应用程序崩溃并导致OutOfMemoryError错误:
(java.lang.OutOfMemoryError:无法分配带有2097152个空闲字节的23970828字节分配和2MB直到OOM)
我不知道或为什么它的内存不足.我认为我的图像尺寸非常大,所以我试图改变它.
Iterator<String> it = imageArray.iterator();
while (it.hasNext()) {
Object element = it.next();
String objElement = element.toString();
Log.e("objElement ", " = " + objElement);
final ImageView imageView = new ImageView (getContext());
final ProgressBar pBar = new ProgressBar(getContext(), null,
android.R.attr.progressBarStyleSmall);
imageView.setTag(it);
pBar.setTag(it);
imageView.setImageResource(R.drawable.img_placeholder);
pBar.setVisibility(View.VISIBLE);
if (objElement.endsWith(mp3_Pattern)) {
Log.e("Mp3 ", " ends with ");
pBar.setVisibility(View.GONE);
imageView.setImageResource(R.drawable.audio_control);
}
if (objElement.endsWith(png_Pattern)) {
Bitmap bitmap = BitmapFactory.decodeFile(objElement);
int size = Math.min(bitmap.getWidth(), bitmap.getHeight());
int x = (bitmap.getWidth() - size) …
Run Code Online (Sandbox Code Playgroud) 我正在尝试从图库中选择图像,但是我的应用程序除了"出错了"消息之外.我以为我正确设置了android WRITE_EXTERNAL_STORAGE和READ_EXTERNAL_STORAGE权限,但我一直收到错误我应该怎么做让它工作?
这是我的Log cat错误
06-07 12:07:27.567 1692-1711/? E/DatabaseUtils? Writing exception to parcel
java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/images/media/359 from pid=2818, uid=10057 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()
at android.content.ContentProvider.enforceReadPermissionInner(ContentProvider.java:605)
at android.content.ContentProvider$Transport.enforceReadPermission(ContentProvider.java:480)
at android.content.ContentProvider$Transport.query(ContentProvider.java:211)
at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:112)
at android.os.Binder.execTransact(Binder.java:453)
Run Code Online (Sandbox Code Playgroud)
这是我的活动代码
public class MainActivity extends Activity {
private static int RESULT_LOAD_IMG = 1;
String imgDecodableString;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void loadImagefromGallery(View view) {
// Create intent to Open Image applications like Gallery, Google Photos
Intent galleryIntent = new …
Run Code Online (Sandbox Code Playgroud) 我想从Http url下载图像并在加载后保存到SD卡并显示到图像视图中.我试过从android-hive的Image-loader教程使用我的http url加载图像但是运行后的图像无法加载和显示.应用程序没有崩溃,但java.net.SocketTimeoutException: failed to connect to /103.24.4.60 (port 80) after 30000ms
在ImageLoader类中获得错误异常
这是我的日志信息
09-30 02:32:15.820 18371-18389/? W/System.err? java.net.SocketTimeoutException: failed to connect to /103.24.4.60 (port 80) after 30000ms
09-30 02:32:15.820 18371-18389/? W/System.err? at libcore.io.IoBridge.connectErrno(IoBridge.java:169)
09-30 02:32:15.820 18371-18389/? W/System.err? at libcore.io.IoBridge.connect(IoBridge.java:122)
09-30 02:32:15.820 18371-18389/? W/System.err? at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:183)
09-30 02:32:15.820 18371-18389/? W/System.err? at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:456)
09-30 02:32:15.820 18371-18389/? W/System.err? at java.net.Socket.connect(Socket.java:882)
09-30 02:32:15.820 18371-18389/? W/System.err? at com.android.okhttp.internal.Platform.connectSocket(Platform.java:139)
09-30 02:32:15.820 18371-18389/? W/System.err? at com.android.okhttp.Connection.connect(Connection.java:148)
09-30 02:32:15.820 18371-18389/? W/System.err? at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:276)
09-30 …
Run Code Online (Sandbox Code Playgroud) 我试图将SD卡中的图像转换为位图以便在Image-view中显示.运行应用程序后,首先显示两到三个图像,但是当我滚动列表应用程序崩溃并获得NullPointerException异常时:java.lang.NullPointerException:尝试在com.example.tazeen.classnkk.Activity1 $ MyListAdapter.getView(Activity1.java:357)上的空对象引用上调用虚拟方法'int android.graphics.Bitmap.getWidth()'
if(objElement.endsWith(mp3_Pattern))
{
Log.e("Mp3 ", " ends with ");
{
int scalFactor = fixHeight / h ;
newWidth = (int)( w * scalFactor);
Log.e("scalFactor "," = " + scalFactor);
Log.e("newWidth "," = " + newWidth);
Log.e("resizing... ","in if condition");
new_Height = fixHeight ;
}
else
{
newWidth = w;
new_Height = h;
}
Uri uri = Uri.fromFile(new File(objElement));
Picasso.with(getContext()).load(uri).resize(newWidth, new_Height).placeholder(R.drawable.img_placeholder).into(imageView , new com.squareup.picasso.Callback() {
@Override
public void onSuccess() {
if (pBar != null) {
pBar.setVisibility(View.GONE);
} …
Run Code Online (Sandbox Code Playgroud) 我有100张巨大的图像(500*700,401*800,2345*3567),所以我希望所有这些图像的高度都与220相同.下面我正在实现图像宽高比的计算.我想设置所有大尺寸图像的固定高度.我正在使用一些算术公式来计算纵横比,但是所有图像的宽度都相同,高度不同但我希望高度固定.如何获得固定高度?感谢欣赏.
这是我的图像宽高比的计算代码
if (bitmapResizeImage != null) {
int originalWidth = bitmapResizeImage.getWidth();
int originalHeight = bitmapResizeImage.getHeight();
Log.e("originalWidth "," = " + originalWidth +" originalHeight = " + originalHeight+" of imgElement = " + imgElement+ " Notation = " +all_Post.getStrNotationNo());
float aspect_ratio = originalWidth / originalHeight ;
Log.e("aspect_ratio "," = " + aspect_ratio);
float adjusted_width = 220 * originalWidth / originalHeight ;
Log.e("adjusted_width "," = " + adjusted_width);
float adjusted_height = originalWidth * originalHeight / originalWidth ;
Log.e("adjusted_height "," = " + …
Run Code Online (Sandbox Code Playgroud) 我遇到错误在从SQLite数据库表中检索某些数据的同时,请确保在访问游标之前正确初始化了游标。
这是我的查询
dbhelper = new MyDbHelper(getContext());
SQLiteDatabase db = dbhelper.getReadableDatabase();
Cursor cursor1 = db.rawQuery("select MAX(activityObjId) from ActivityObjectList where activityId " + "= ? ", new String[]{string_ActivityId});
if (cursor1.moveToFirst())
{
maxACtivityObjId = cursor1.getString(cursor1.getColumnIndex("activityObjId"));
Log.e("MAX ", "maxACtivityObjId = " + maxACtivityObjId);
}
cursor1.close();
db.close();
Run Code Online (Sandbox Code Playgroud)