У меня есть головный блок для автомобиля с Android 5.1.1. В запуска есть слайдер, на одной из страниц слайдера запуск виртуального дисплея и поверхностей организован: < /p>
public class MapFragment extends BaseFragment implements IMapRenderReceiver {
private FragmentActivity mActivity;
private DisplayManager mDisplayManager;
private MapRenderReceiver mRenderMapReceiver = new MapRenderReceiver(this);
private int mSfHeight;
private int mSfWidth;
private SurfaceView mSurfaceView;
private ImageView mSurfaceViewDefaultBg;
private VirtualDisplay mVirtualDisplay;
@Override
@Nullable
public View onCreateView(@NonNull LayoutInflater inflater,
@Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_map, container, false);
this.mActivity = getActivity();
initView(view);
init();
initMap();
return view;
}
private void initView(View view) {
this.mSurfaceView = (SurfaceView) view.findViewById(R.id.surfaceView);
this.mSurfaceViewDefaultBg = (ImageView) view.findViewById(R.id.SurfaceView_default_bg);
}
private void init() {
registerRenderMapReceiver();
this.mSurfaceView.getHolder().addCallback(new SurfaceHolder.Callback() {
@Override
public void surfaceCreated(SurfaceHolder holder) { }
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { }
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
MapFragment.this.showDefaultMap();
}
});
this.mSurfaceView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AppsManager.getInstance().startApp(
MapFragment.this.mActivity.getApplicationContext(),
AppsConstant.MAP,
AppsConstant.MAP_PCK,
AppsConstant.MAP_MAIN
);
}
});
}
private void initMap() {
showDefaultMap();
this.mDisplayManager = (DisplayManager) this.mActivity.getSystemService("display");
this.mSurfaceView.getHolder().addCallback(new SurfaceHolder.Callback() {
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
LogUtils.d(MapFragment.this.TAG, "surfaceDestroyed: ");
if (MapFragment.this.mVirtualDisplay != null) {
MapFragment.this.mVirtualDisplay.release();
MapFragment.this.mVirtualDisplay = null;
}
MapFragment.this.showDefaultMap();
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
LogUtils.d(MapFragment.this.TAG, "surfaceCreated:");
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
MapFragment.this.mSfWidth = width;
MapFragment.this.mSfHeight = height;
MapFragment.this.createVirtualDisplay(holder.getSurface());
}
});
}
@Override
public void showDefaultMap() {
LogUtils.d(this.TAG, "showDefaultMap:");
this.mSurfaceViewDefaultBg.setVisibility(0);
SkinChange.getInstance().skinChange(new ISkinChange() {
@Override
public void skinChange(String skin) {
switch (skin) {
case "black_theme":
MapFragment.this.mSurfaceViewDefaultBg.setImageResource(R.mipmap.surface_bg);
break;
case "glod_theme":
MapFragment.this.mSurfaceViewDefaultBg.setImageResource(R.mipmap.surface_glod_bg);
break;
case "red_theme":
MapFragment.this.mSurfaceViewDefaultBg.setImageResource(R.mipmap.surface_red_bg);
break;
}
}
});
}
private void registerRenderMapReceiver() {
IntentFilter intentFilter = new IntentFilter(Constant.ACTION_LAUNCHER_MAP_START_RENDER);
intentFilter.addAction(BroadcastConstant.ACTION_LAUNCHER_MAP_SHOW);
intentFilter.addAction(BroadcastConstant.ACTION_LAUNCHER_MAP_HIDE);
this.mActivity.getApplicationContext().registerReceiver(this.mRenderMapReceiver, intentFilter);
}
public void createVirtualDisplay(Surface surface) {
if (this.mVirtualDisplay == null) {
this.mVirtualDisplay = this.mDisplayManager.createVirtualDisplay(
"PresentationScreenLauncher",
this.mSfWidth,
this.mSfHeight,
320,
surface,
11
);
}
}
@Override
public void hideDefaultMap() {
LogUtils.d(this.TAG, "hideDefaultMap: ");
this.mSurfaceViewDefaultBg.setVisibility(8);
}
@Override
public void onDestroy() {
super.onDestroy();
this.mActivity.getApplicationContext().unregisterReceiver(this.mRenderMapReceiver);
this.mRenderMapReceiver.onDestroy();
}
}
< /code>
< /code>
Мне нужно отобразить изображение из другого приложения на этой поверхности. Как лучше всего это сделать, использовать презентацию или можно напрямую выводить?
Подробнее здесь: https://stackoverflow.com/questions/797 ... pplication
Отображать на поверхности VirtualDisplay из другого приложения ⇐ Android
Форум для тех, кто программирует под Android
-
Anonymous
1756027131
Anonymous
У меня есть головный блок для автомобиля с Android 5.1.1. В запуска есть слайдер, на одной из страниц слайдера запуск виртуального дисплея и поверхностей организован: < /p>
public class MapFragment extends BaseFragment implements IMapRenderReceiver {
private FragmentActivity mActivity;
private DisplayManager mDisplayManager;
private MapRenderReceiver mRenderMapReceiver = new MapRenderReceiver(this);
private int mSfHeight;
private int mSfWidth;
private SurfaceView mSurfaceView;
private ImageView mSurfaceViewDefaultBg;
private VirtualDisplay mVirtualDisplay;
@Override
@Nullable
public View onCreateView(@NonNull LayoutInflater inflater,
@Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_map, container, false);
this.mActivity = getActivity();
initView(view);
init();
initMap();
return view;
}
private void initView(View view) {
this.mSurfaceView = (SurfaceView) view.findViewById(R.id.surfaceView);
this.mSurfaceViewDefaultBg = (ImageView) view.findViewById(R.id.SurfaceView_default_bg);
}
private void init() {
registerRenderMapReceiver();
this.mSurfaceView.getHolder().addCallback(new SurfaceHolder.Callback() {
@Override
public void surfaceCreated(SurfaceHolder holder) { }
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { }
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
MapFragment.this.showDefaultMap();
}
});
this.mSurfaceView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AppsManager.getInstance().startApp(
MapFragment.this.mActivity.getApplicationContext(),
AppsConstant.MAP,
AppsConstant.MAP_PCK,
AppsConstant.MAP_MAIN
);
}
});
}
private void initMap() {
showDefaultMap();
this.mDisplayManager = (DisplayManager) this.mActivity.getSystemService("display");
this.mSurfaceView.getHolder().addCallback(new SurfaceHolder.Callback() {
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
LogUtils.d(MapFragment.this.TAG, "surfaceDestroyed: ");
if (MapFragment.this.mVirtualDisplay != null) {
MapFragment.this.mVirtualDisplay.release();
MapFragment.this.mVirtualDisplay = null;
}
MapFragment.this.showDefaultMap();
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
LogUtils.d(MapFragment.this.TAG, "surfaceCreated:");
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
MapFragment.this.mSfWidth = width;
MapFragment.this.mSfHeight = height;
MapFragment.this.createVirtualDisplay(holder.getSurface());
}
});
}
@Override
public void showDefaultMap() {
LogUtils.d(this.TAG, "showDefaultMap:");
this.mSurfaceViewDefaultBg.setVisibility(0);
SkinChange.getInstance().skinChange(new ISkinChange() {
@Override
public void skinChange(String skin) {
switch (skin) {
case "black_theme":
MapFragment.this.mSurfaceViewDefaultBg.setImageResource(R.mipmap.surface_bg);
break;
case "glod_theme":
MapFragment.this.mSurfaceViewDefaultBg.setImageResource(R.mipmap.surface_glod_bg);
break;
case "red_theme":
MapFragment.this.mSurfaceViewDefaultBg.setImageResource(R.mipmap.surface_red_bg);
break;
}
}
});
}
private void registerRenderMapReceiver() {
IntentFilter intentFilter = new IntentFilter(Constant.ACTION_LAUNCHER_MAP_START_RENDER);
intentFilter.addAction(BroadcastConstant.ACTION_LAUNCHER_MAP_SHOW);
intentFilter.addAction(BroadcastConstant.ACTION_LAUNCHER_MAP_HIDE);
this.mActivity.getApplicationContext().registerReceiver(this.mRenderMapReceiver, intentFilter);
}
public void createVirtualDisplay(Surface surface) {
if (this.mVirtualDisplay == null) {
this.mVirtualDisplay = this.mDisplayManager.createVirtualDisplay(
"PresentationScreenLauncher",
this.mSfWidth,
this.mSfHeight,
320,
surface,
11
);
}
}
@Override
public void hideDefaultMap() {
LogUtils.d(this.TAG, "hideDefaultMap: ");
this.mSurfaceViewDefaultBg.setVisibility(8);
}
@Override
public void onDestroy() {
super.onDestroy();
this.mActivity.getApplicationContext().unregisterReceiver(this.mRenderMapReceiver);
this.mRenderMapReceiver.onDestroy();
}
}
< /code>
< /code>
Мне нужно отобразить изображение из другого приложения на этой поверхности. Как лучше всего это сделать, использовать презентацию или можно напрямую выводить?
Подробнее здесь: [url]https://stackoverflow.com/questions/79744230/display-in-to-surface-of-virtualdisplay-from-another-application[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия