小编ole*_*men的帖子

如何从Android AppWidget启动Activity?

像这样的代码效果很好.

    Intent configIntent = new Intent (context, WidgetConfigActivity.class);
    configIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
    PendingIntent pIntent = PendingIntent.getActivity(context, 0, configIntent, PendingIntent.FLAG_UPDATE_CURRENT);
    remoteView.setOnClickPendingIntent(R.id.btn, pIntent);
Run Code Online (Sandbox Code Playgroud)

但是我想隐藏那个按钮,因为活动会出现,所以我试图将意图发送到小部件本身,在onReceive()方法中执行隐藏组件然后开始活动.问题是我无法startActivity()在AppWidget中使用函数.

有什么解决方案吗?

android android-activity android-appwidget

12
推荐指数
3
解决办法
8002
查看次数

如何在TextureView上绘制位图

我正试图在Android上播放视频TextureView.关于视频任务运作良好.但MediaPlayer.prepare();需要一些时间.所以我想在那个时候展示一些占位符.我试图用Glide这样做:

public static final Rect rc = new Rect();
@Override
public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture, int w, int h) {
    Surface s = new Surface(surfaceTexture);
    Glide.with(mTextureView.getContext())
            .load(thumbUrl)
            .asBitmap()
            .dontAnimate()
            .centerCrop()
            .into(new SimpleTarget<Bitmap>(w, h) {
                @Override
                public void onResourceReady(Bitmap resource, GlideAnimation glideAnimation) {
                    rc.set(0,0,w,h);
                    Canvas c = mTextureView.lockCanvas(rc);
                    if (c == null)
                        return;
                    c.drawBitmap(resource, 0, 0, null);
                    mTextureView.unlockCanvasAndPost(c);
                }
            });

    try {
        mMediaPlayer.setDataSource(url);
        mMediaPlayer.setSurface(s);
        mMediaPlayer.prepareAsync();
        mMediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
            @Override
            public void onPrepared(MediaPlayer mediaPlayer) {
                mMediaPlayer.setVideoScalingMode(MediaPlayer.VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING);
                mMediaPlayer.setVolume(0,0);
                mMediaPlayer.start();
            } …
Run Code Online (Sandbox Code Playgroud)

android bitmap textureview android-glide

10
推荐指数
0
解决办法
6261
查看次数

流动和迫击过渡与共享组件

我想知道是否有可能制作屏幕过渡动画,如活动过渡与共享组件,因为它经常在Android Lollipop和Material设计中使用.谢谢.

flow mortar

9
推荐指数
0
解决办法
373
查看次数

如何查询具有包含指定值的RealmList的RealmObject

我有RealmObject(让我们说Owner)它有RealmList<Cat>.Cat有房产name.如何查询所有Owner拥有指定名称的猫?

我试过了:

RealmResult<Owner> owners = realm.query(Owner.class)
                                    .contains("cats", "Garfield")
                                    .findAll();
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

PS最有可能重复,但无法找到.

realm

8
推荐指数
1
解决办法
5383
查看次数

Android Studio 3.0生成平面依赖关系树,因此我该如何阅读它

Android Studio 3.0生成平面依赖关系树.那么我怎样才能找出哪个依赖项具有我正在寻找的传递依赖?

例如,在我的依赖项中某处支持lib 25.3.1存在传递依赖.执行androidDependencies任务我发现有些库正在使用,customtabs:25.3.1但我无法弄清楚哪一个,因为我的依赖树看起来像这样:

alphaDebug
alphaDebugCompileClasspath - Dependencies for compilation
+--- com.android.support:multidex:1.0.2@aar
+--- :NyheterCore:lib (variant: debug)
+--- /Users/oleg/Projects/AndroidStudio/Innocode/apps/nyheter-app/NyheterCore/lib/libs/ExpiringMap.jar
+--- com.android.databinding:adapters:1.3.1@aar
+--- com.android.databinding:library:1.3.1@aar
+--- com.android.databinding:baseLibrary:3.0.0@jar
+--- :SwipeToCloseActivity:swipetoclose (variant: debug)
+--- :MediaStorage:lib (variant: debug)
+--- :Skeleton:skeletonlib (variant: debug)
+--- :UtilsLib:lib (variant: debug)
+--- :MediaChooser:lib (variant: debug)
+--- com.trello:rxlifecycle-components:0.6.1@aar
+--- com.android.support:design:26.0.1@aar
+--- com.android.support:appcompat-v7:26.0.1@aar
+--- com.android.support:recyclerview-v7:26.0.1@aar
+--- com.google.android.gms:play-services-ads:11.4.2@aar
+--- com.google.firebase:firebase-messaging:11.4.2@aar
+--- com.google.android.gms:play-services-maps:11.4.2@aar
+--- com.google.android.gms:play-services-ads-lite:11.4.2@aar
+--- com.google.android.gms:play-services-gass:11.4.2@aar
+--- com.google.firebase:firebase-core:11.4.2@aar
+--- com.google.firebase:firebase-analytics:11.4.2@aar
+--- com.google.firebase:firebase-analytics-impl:11.4.2@aar
+--- com.google.firebase:firebase-iid:11.4.2@aar
+--- com.google.firebase:firebase-common:11.4.2@aar
+--- com.google.android.gms:play-services-location:11.4.2@aar
+--- …
Run Code Online (Sandbox Code Playgroud)

android android-gradle-plugin

8
推荐指数
1
解决办法
1072
查看次数

禁用的seekBar没有调光

在特殊情况下,我需要防止用户输入的搜索栏.如果我使用setEnabled(false)它变成灰色而不是白色.

是否有任何方法可以禁用搜索栏而不调暗或为禁用的搜索栏设置另一个drawable进度?

android seekbar

7
推荐指数
2
解决办法
2594
查看次数

如何将create-react-kotlin-app作为模块添加到kotlin-multiplatform项目中?

Kotlin-multiplatform项目只适用于gradle模块,但create-react-kotlin-app没有一个?请有人帮我提供一些关于如何让它们一起工作的指导.

kotlin

7
推荐指数
1
解决办法
219
查看次数

具有Objective-C框架的Kotlin多平台/本机互操作性

我试图在多平台项目中从Kotlin调用Swift / Objective-C代码。调用平台代码没有问题。但是,当我尝试调用某个库(或框架,因为我不是iOS开发人员而不确定如何正确调用它)时,它将失败。Docs指出,如果正确导出,可以调用Objective-C代码和Swift:

Kotlin / Native提供与Objective-C的双向互操作性。如果正确导入到构建中,则可以在Kotlin代码中使用Objective-C框架和库(默认情况下会导入系统框架)。请参阅Gradle插件文档中的“使用cinterop”。如果Swift库的API已通过@objc导出到Objective-C,则可以在Kotlin代码中使用它。尚不支持Pure Swift模块。

但这并没有说明如何正确导入它们。它仅指向gradle插件描述,该描述描述了gradle插件的旧版本。因此它对我不起作用。最后,我发现了某种可能是导入Objective-C代码的方式:

fromPreset(presets.iosX64, 'ios') {
        compilations.main.outputKinds('FRAMEWORK')
        compilations.main {
            cinterops {
                firebase {
                    def pods = '${System.getProperty("user.home")}/Projects/kmpp/iosApp/Pods/'
                    includeDirs '${pods}Firebase/CoreOnly/Sources',
                            '${pods}FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers'
                }
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

生成运行不会失败,但是不会导入任何内容。我究竟做错了什么?是否可以完全导入这样的库?

UPD:

在这里,我找到了一个使用cinterop工具示例,如下所示:

cd samples/gitchurn
../../dist/bin/cinterop -def src/main/c_interop/libgit2.def \
 -compilerOpts -I/usr/local/include -o libgit2
Run Code Online (Sandbox Code Playgroud)

看来cinterop工具应该/dist/bin/在我的项目的文件夹中,但是没有这样的文件夹。我在哪里可以获得cinterop工具?

kotlin kotlin-interop kotlin-native kotlin-multiplatform

7
推荐指数
1
解决办法
660
查看次数

没有注册注册.您必须将其显式添加到其中一个模块的"注入"选项中

嗨,我是新来的匕首,并试图用简单的Android应用程序研究它.

即使有注入此视图的模块,我也会从标题中收到错误.任何人都可以帮我弄清楚它为什么不注入视图?

这是我的app主要模块:

@dagger.Module(injects = {App.class, MainActivity.class}, complete = false)
public class AppModule {
    private final App app;
    public AppModule(App app) { this.app = app; }
    @Provides @Singleton public App provideApp() { return app; }
}
Run Code Online (Sandbox Code Playgroud)

另一个注入我视图的模块:

@Layout(R.layout.sidemenu)
public class SidemenuScreen implements Blueprint{
    @Override public String getMortarScopeName() { return getClass().getName(); }
    @Override public Object getDaggerModule() { return new Module();}

    @dagger.Module(injects= SidemenuView.class, addsTo = AppModule.class)
    public static class Module { 
       public Module() {}
    }

    @Singleton public static class Presenter extends ViewPresenter<SidemenuView> …
Run Code Online (Sandbox Code Playgroud)

android dagger mortar

5
推荐指数
1
解决办法
4719
查看次数

UriMatcher Uri*和#差异

我试图ContentProvider基于一些例子来实现我自己,但我对它的不同方法感到困惑UriMAtcher.例如: JavaDoc#这样的方式显示它:

sURIMatcher.addURI("contacts", "people", PEOPLE);
sURIMatcher.addURI("contacts", "people/#", PEOPLE_ID);
sURIMatcher.addURI("contacts", "people/#/phones", PEOPLE_PHONES);
sURIMatcher.addURI("contacts", "people/#/phones/#", PEOPLE_PHONES_ID);
Run Code Online (Sandbox Code Playgroud)

但在谷歌的" iosched "参考应用程序中它使用*如下:

matcher.addURI(authority, "rooms", ROOMS);
matcher.addURI(authority, "rooms/*", ROOMS_ID);
matcher.addURI(authority, "rooms/*/sessions", ROOMS_ID_SESSIONS);
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释这两种方法的区别吗?

android uri android-contentprovider

5
推荐指数
1
解决办法
2487
查看次数