При использовании расширения play_games у меня возникают проблемы с возвратом изображения профиля пользователя.
Используйте метод ниже для входа в систему и установки состояния с возвратом данных пользователя.
Изображение провайдер: NetworkImage ("content: //com.google.android.gms.games.background/images/f56551ac/42", масштаб: 1,0)
// Google Play Games stance
final GameServices gameservices = GameServices();
Account profile;
ui.Image profileimage;
void _login() async {
final res = await gameservices.login();
final resimage = await res.hiResImage;
setState(() {
profile = res;
profileimage = resimage;
});
print(profileimage);
}
В виджете я нахожусь в в форме NetworkImage, но он по-прежнему не отображается на экране.
эта ошибка: тип аргумента «Изображение» нельзя присвоить типу параметра «Строка».
Container(
width: 128,
height: 128,
padding: EdgeInsets.all(8),
child: CircleAvatar(
backgroundImage: NetworkImage(this.profileimage != null ? this.profileimage : 'https://api.adorable.io/avatars/128/')
),
decoration: BoxDecoration(
color: Colors.white,
shape: BoxShape.circle
),
),
[РЕШЕНО !!! ]
Измените мой код, и play_games возвращает тип vars. Позволяет go:
Future<Uint8List> get hiResImage async =>
await _fetchToMemory(await _channel.invokeMethod('getHiResImage'));
Future<Uint8List> get iconImage async =>
await _fetchToMemory(await _channel.invokeMethod('getIconImage'));
}
Future<Uint8List> _fetchToMemory(Map<dynamic, dynamic> result) {
Uint8List bytes = result['bytes'];
if (bytes == null) {
print('was null, mate');
return Future.value(null);
}
// Completer<Image> completer = new Completer();
// decodeImageFromList(bytes, (image) => completer.complete(image));
return Future.value(bytes);
}
И мой код, только это изменение:
Uint8List profileimage;