Обязательно перейдите к великому ответу Шехаряра . За этим последовало так много ответов и комментариев, что было бы легко запутаться и сдаться, но нет . Этот ответ работает .
Короче говоря, вы делаете три вещи :
(1) Отмените выбор Compact Empty Middle Packages
.
(2) Refactor
затем Rename
каждый старый узел каталога, выбрав Change Package
( не Change Directory
), чтобы соответствовать новому имени пакета. (Обязательно выполните предварительный просмотр изменений.)
(3) Отредактируйте файл build.gradle
и сделайте APPLICATION_ID
соответствующим новому имени пакета.
В FlushedInputStream есть ошибка (есть). он не работает на медленных соединениях, но вы можете попробовать мой магический код, чтобы это исправить.
Bitmap b = BitmapFactory.decodeStream(new FlushedInputStream(is));
imageView.setImageBitmap(b);
создайте статический класс вне вашего метода
static class FlushedInputStream extends FilterInputStream {
public FlushedInputStream(InputStream inputStream) {
super(inputStream);
}
@Override
public long skip(long n) throws IOException {
long totalBytesSkipped = 0L;
while (totalBytesSkipped < n) {
long bytesSkipped = in.skip(n - totalBytesSkipped);
if (bytesSkipped == 0L) {
int b = read();
if (b < 0) {
break; // we reached EOF
} else {
bytesSkipped = 1; // we read one byte
}
}
totalBytesSkipped += bytesSkipped;
}
return totalBytesSkipped;
}
}
и вот, пожалуйста, теперь у вас не будет никаких проблем.
Я столкнулся с этой проблемой, используя Xamarin. Чтобы исправить это, я просто использовал универсальный компонент Xamarin Image Loader , и он работал как шарм.
Надеюсь, это поможет!