谁知道我该如何从Leanback ImageCardView更改标题textcolor?
我试图覆盖leanback样式,但是也许我没有找到正确的属性。
非常感谢!!!
我有一个 Fire TV 应用程序,该应用程序也将在普通 Android TV 上发布,以及一些搭载 Android(非 Android TV)的电视,也可能在平板电脑上发布。因此,我为 Android TV 设置了横幅,并且工作正常,该图标在其他设备上工作正常,但 Fire TV 在我期望显示横幅的位置显示了该图标。这是我的应用程序 xml:
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:banner="@drawable/banner"
android:theme="@style/AppTheme">
<activity
android:name=".start.MainActivity"
android:banner="@drawable/banner"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:logo="@drawable/banner"
android:roundIcon="@mipmap/ic_launcher_round"
android:screenOrientation="landscape">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LEANBACK_LAUNCHER" />
</intent-filter>
</activity>
</application>
Run Code Online (Sandbox Code Playgroud)
我缺少什么?我也使用下面的内容制作了自定义 xml,但没有帮助:
<resources>
<drawable name="splash_logo">@drawable/banner</drawable>
<drawable name="app_logo">@drawable/banner</drawable>
<drawable name="company_logo">@drawable/banner</drawable>
</resources>
Run Code Online (Sandbox Code Playgroud) 当我在电视上安装应用程序时,我可以运行它并执行所有操作,但我不知道为什么应用程序图标没有显示在电视的主屏幕上。主要是它不显示在 1080p 电视上
这是我的 AndroidManifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.app.demo.tv">
<uses-feature
android:name="android.hardware.touchscreen"
android:required="false" />
<uses-feature
android:name="android.software.leanback"
android:required="true" />
<permission
android:name="com.app.demo.tv.ACCESS_VIDEO_DATA"
android:protectionLevel="signature" />
<uses-permission android:name="android.permission.INTERNET" />
<application
android:name=".Application"
android:allowBackup="true"
android:banner="@drawable/app_icon"
android:icon="@drawable/app_icon"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<activity
android:name=".HomeActivity"
android:label="@string/app_name"
android:theme="@style/HomeTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.LEANBACK_LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/LandingAndOtherTheme" />
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud) [环境]
Android Studio 1.1.0
buildToolsVersion"21.1.2"
当我构建"androidtv-Leanback-master"时出现此错误:
Executing tasks: [clean, :app:compileDebugSources]
Configuration on demand is an incubating feature.
:app:clean
:app:preBuild
:app:preDebugBuild
:app:checkDebugManifest
:app:preReleaseBuild
:app:prepareComAndroidSupportAppcompatV72200Library
:app:prepareComAndroidSupportLeanbackV172200Library
:app:prepareComAndroidSupportRecyclerviewV72200Library
:app:prepareComAndroidSupportSupportV42200Library
:app:prepareDebugDependencies
:app:compileDebugAidl
:app:compileDebugRenderscript
:app:generateDebugBuildConfig
:app:generateDebugAssets UP-TO-DATE
:app:mergeDebugAssets
:app:generateDebugResValues UP-TO-DATE
:app:generateDebugResources
:app:mergeDebugResources
D:\andorid_code\androidtv-Leanback-master\app\build\intermediates\exploded-aar\com.android.support\appcompat-v7\22.0.0\res\drawable-hdpi-v4\abc_spinner_mtrl_am_alpha.9.png: libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
:app:processDebugManifest
:app:processDebugResources
D:\andorid_code\androidtv-Leanback-master\app\build\intermediates\res\debug\transition-v22\lb_browse_entrance_transition.xml:23: error: Error: String types not allowed (at 'slideEdge' with value 'end').
D:\andorid_code\androidtv-Leanback-master\app\build\intermediates\res\debug\transition-v22\lb_browse_return_transition.xml:18: error: Error: String types not allowed (at 'slideEdge' with value 'start').
D:\andorid_code\androidtv-Leanback-master\app\build\intermediates\res\debug\transition-v22\lb_browse_return_transition.xml:27: error: Error: String …
Run Code Online (Sandbox Code Playgroud) Android 的 Leanback 库提供了一些自定义 RowFragment 的标准方法,包括 Rows 和 Cards 本身,但我不确定如何在框架提供的内容之外添加自定义元素。
我特别想要实现的是向一行添加一个 FooterItem,类似于每一行都有一个 HeaderItem。
我想获得 ListRowView/ListRowPresenter 中的现有功能,但我不确定如何“正确”执行此操作。
我正在使用 PlayFragment 在 AndroidTV 中播放视频。我想隐藏播放/暂停/快进/进度条等控件。
我该怎么做 ?
如果有人知道请帮忙。我正在使用下面的示例:
[https://github.com/googlesamples/androidtv-Leanback.git][1]
PlayBackFragment 中有一些方法,例如
setControlsOverlayAutoHideEnabled(false)
hideControlsOverlay(true);
Run Code Online (Sandbox Code Playgroud)
但没有作品。有人可以帮助我吗?
在 Android 中,制作AlertDialog
带有Positive/Negative
按钮的按钮很容易。
new AlertDialog.Builder(getActivity())
.setTitle("Question?")
.setPositiveButton("YES", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// User chose YES
}
})
.setNegativeButton("NO", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
// User chose NO
}
}).create().show();
Run Code Online (Sandbox Code Playgroud)
我想在我的TV App 中制作等价物。(向用户提问,得到 Yes/No 响应)
我发现了两件事,但都不能解决我的用例:
ErrorFragment(关闭,但只有 1 个按钮)
GuidedStepFragment(允许我有多个选项,但需要创建一个单独的 Activity,我必须编写自己的代码才能将选定的选项传递回第一个 Activity)
我觉得我错过了一些东西。这只是普通 Android 应用程序中的几行代码。
我尝试只AlertDialog
在我的电视应用程序中使用,但它会引发Theme
关于在应用程序上设置不正确的错误。另外,我认为这些对话框无论如何都不是可访问性友好的。
我在这里写了一段代码:
public class Wizard1 extends GuidedStepFragment implements Callback {
private boolean sendPhoneNumber(String userPhoneNumber) {
OkHttpClient client = new OkHttpClient();
RequestBody requestBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("request_magic_code", Urls.REQUEST_MAGIC_CODE)
.build();
Request request = new Request.Builder()
.url(Urls.HOST + Urls.SEND_PHONE_NUMBER)
.post(requestBody)
.build();
client.newCall(request).enqueue(this);
return success;
}
@Override
public void onFailure(@NonNull Call call, @NonNull IOException e) {
e.printStackTrace();
}
@Override
public void onResponse(@NonNull Call call, @NonNull Response response) throws IOException {
ResponseBody myResponse = response.body();
Log.d("SS", response.body().string());
Log.d("SS", response.body().string());
if (myResponse != null) {
success …
Run Code Online (Sandbox Code Playgroud) 这里 VerticalGridView(VG) 将填充一些数据。VG 通过向上/向下按 D-PAD 键获得焦点,工作正常。但问题是,当焦点位于网格中的第 0 项并且用户按下 D-PAD 键时,焦点必须设置为 VG 外部的视图之一,即 ll_exit(xml 文件中提到的 id),但当前焦点不是去上述的观点。请让我知道如何解决这个问题。
我尝试设置 android:nextFocusUp="@id/ll_exit" 但它没有移动并尝试在活动级别实现 onKeyUp 方法,如下所示
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_DPAD_UP:
Log.d(TAG, "onKeyUp: " + event.getAction());
GenresFragment fragment = (GenresFragment) getSupportFragmentManager().findFragmentById(R.id.fragment_genre);
int pos = fragment.getVerticalGridView().getSelectedPosition();
if (pos == 0) {
fragment.getLlExit().requestFocus();
}
return true;
default:
return super.onKeyUp(keyCode, event);
}
}
Run Code Online (Sandbox Code Playgroud)
但这里的问题是,当我位于 VG 中的第一个项目并突然按下向上键按钮时,它会转到我需要聚焦的视图。这是xml文件中的ll_exit视图
<b>main_layout.xml</b>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ll_root"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:id="@+id/ll_toolbar"
android:layout_width="@dimen/select_genre_fragment_width"
android:layout_height="@dimen/select_genre_toolbar_height"
android:orientation="horizontal"> …
Run Code Online (Sandbox Code Playgroud) 通过将焦点保持在中心元素上滚动 VerticalGridView。我正在实现一个列数为 1 的垂直网格视图,并且我想将焦点保持在位于中心的单个项目上并移动垂直网格视图。我想将焦点设置在垂直网格视图中的中心对象上,并通过将焦点固定在那里来滚动视图
leanback ×10
android ×8
android-tv ×4
focus ×2
gridview ×2
launcher ×1
okhttp ×1
retrofit2 ×1
television ×1