4

ImageView私のホームスクリーンウィジェットには1つあります。レイアウト ファイルでは、高さと幅を に設定していwrap_contentます。しかし、ユーザーの入力によっては、高さと幅を に変更する必要がありmatch_parentます。これはどのように行うことができますか?

RemoteViews rv = new RemoteViews(context.getPackageName(), R.layout.widget_layout);

setInt()、このオブジェクトのメソッドを次のRemoteViewsように使用して、高さと幅を変更できるかどうかを確認しようとしました:

rv.setInt(R.id.widgetImageView, "setMinimumHeight", 300);

しかし、これは私がlogcatで得たものです:

couldn't find any view, using error view
android.widget.ImageView can't use method with RemoteViews: setMinimumHeight(int)

では、その高さと幅を に変更するにはどうすればよいmatch_parentですか?

4

2 に答える 2

0

これがどのように行われるのか疑問に思っている人のために、私ImageViewはレイアウトで 2 つを使用しました。1 つは高さと幅が に設定されwrap_content、もう 1 つは高さと幅が に設定されていmatch_parentます。ユーザーの入力に応じて、必要のないsetVisibilityを非表示にするために を呼び出しました。ImageViewRemoteView

rv.setInt(R.id.widgetImageView1, "setVisibility", View.GONE);

ImageViewを通じて呼び出すことができるメソッドはほとんどありませんRemoteView

于 2013-01-12T09:30:56.400 に答える
-1

使用する:

    ImageView view = new ImageView();
    view.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT));

の最初のパラメータLayoutParamsは幅、2 番目のパラメータは高さです。

ここでは、説明のために新しい ImageView を作成しました。上記を行うには、コードから独自の ImageView 変数を使用する必要があります。それが明確であることを願っています。

[コードの更新]: 申し訳ありませんが、MATCH_PARENT変数は の下ではLayoutParamsありませんView。コードを更新しました。

[更新]: Layout Params を持つことができないためRemoteViews、上記の回答は機能しません。このSO QuestionRemoteViewsの回答に基づいて、通常の方法で RemoteViews のディメンションを設定または検索する方法はありません。

このAndroid Widget Tutorialを見つけました。セクション Widget Size の下で、著者は次のように述べています。

    A Widget will take a certain amount of cells on the homescreen. A cell is
    usually used to display the icon of one application. As a calculation rule 
    you should define the size of the widget with the formula: 

    ((Number of columns / rows)* 74) - 2. 

    These are device independent pixels and the -2 is used to avoid rounding issues.

    As of Android 3.1 a Widgets can be flexible in size, e.g. the user can make it
    larger or smaller. To enable this for Widgets you can use the 
    android:resizeMode="horizontal|vertical" attribute in the XML configuration file
    for the widget.

このことから、特定の整数サイズ値を直接設定する代わりに、サイズを変更する行と列の数を設定してみませんか? たとえば、最初のウィジェット サイズが だった4 Columns and 1 Row場合、ユーザー入力時に に変更して4 Columns and 4 Rows、画面全体を占めるようにすることができます (ウィジェットの最大サイズは 4 行と 4 列です)。

上記の方法があなたが望んでいたものではないことはわかっていますが、これが唯一の方法のように思えます。役立つかどうか試してみてください。

于 2013-01-08T19:07:50.640 に答える