【发布时间】:2016-02-06 06:07:29
【问题描述】:
我在公司有一个任务。他们希望我仅使用 Android java 代码在我们现在正在工作的 android TV 上显示 4k 分辨率图像(4096 X 2160)。我要提到的一件事是,我们的电视分辨率是 1920 X 1080。我从这里的日志中得到了这个分辨率:
WindowManager windowManager = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);
Display display = windowManager.getDefaultDisplay();
TvLog.i(TAG, "Width" + display.getWidth());
TvLog.i(TAG, "Height" + display.getHeight());
宽度将显示 1920,而高度将显示 1080。我只是使用简单的代码来显示图像。下面是代码:
View view;
WindowManager wm;
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
LayoutInflater layoutInflater = LayoutInflater.from(this);
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,
PixelFormat.TRANSPARENT);
wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
view = layoutInflater.inflate(R.layout.pict_4k, null);
params.gravity = Gravity.TOP | Gravity.END;
wm.addView(view, params);
}
布局也很简单:
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY"
android:src="@drawable/a1" >
我了解到只有在 Android 6.0 中才会引入 4k 模式 API。目前我使用的是Android 5.0。那么,我有什么办法可以强制图片在电视上显示其实际分辨率?
【问题讨论】:
标签: android-6.0-marshmallow television android-tv