2012-03-28 11 views
0

次のXMLは、私が探している大胆なテキストを生成します。このXMLレイアウトと対応するJavaレイアウトの違いは何ですか?

<TextView 
    android:layout_width="match_parent" 
    android:layout_height="44dp" 
    android:background="#000000" 
    android:gravity="center" 
    android:text="Review" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:textColor="#ffffff" 
    android:textStyle="bold" /> 

私はこのJavaが同じことをすると思いますが、代わりに大胆ではないデフォルトのサイズのテキストを取得します。何がありますか?

LinearLayout container = new LinearLayout(this); 
    container.setOrientation(LinearLayout.VERTICAL); 
    container.setBackgroundColor(Style.backgroundColor);  

    TextView header = new TextView(this); 
    header.setText("Review"); 
    header.setBackgroundColor(Color.BLACK); 
    header.setTextColor(Color.WHITE); 
    header.setGravity(Gravity.CENTER); 
    header.setTypeface(Typeface.DEFAULT_BOLD); 
    header.setTextAppearance(this, android.R.attr.textAppearanceLarge); 

    float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 44, getResources().getDisplayMetrics()); 
    container.addView(header, LayoutParams.MATCH_PARENT, (int)px); 

(そして、あなたが答える前に、私は。これがうまくjarファイルにパッケージする必要がありますすることはできません。「だけでXMLを使用する」)

+0

質問:プロジェクト全体を圧縮することはできませんでしたか?プロジェクト>エクスポート>プロジェクトのすべてを強調表示して、名前を付けて名前を付ける>右端をクリックしてください。 .xmlを取り出しても、あなたは巨大なバイトデータを失うわけではありません。 – sdfwer

+0

FYI、ツールのr14以降、リソースを含むことができるライブラリプロジェクトはJARとしてパッケージ化されています。 – kabuko

+0

@sdfwer、目標は他の開発者のためにSDKを配布することです。単一の瓶は、統合の痛みが少ないことを意味します。 – tomwhipple

答えて

0

は、代替コンストラクタを使用してみてください:

TextView header = new TextView(this, null, android.R.attr.textAppearanceLarge); 

以降setTextAppearanceを呼び出すことはありません。私の推測では、textAppearanceLargeはあなたが事前に設定した大胆な設定を上書きするということです。

+0

完璧!ありがとう! – tomwhipple

0

だけでなく、ビューのカスタム実装を使用すると、ほとんど」であります"XMLコードを使用するのと同じですが、Javaですべてのことを行うことでカスタムビューを拡張しようとすると、Androidにはいくつかの「バグ」があります。私はこれを前に試してみたことがあり、XMLのレイアウトをうまく使っていて、私のカスタムJavaレイアウトを使っているだけなので、確かに分かります... つまり、違いはありませんが、もう少しコードを書いてください。あなたのアプリはこのような小さなバグの影響を受けやすいです。ここ は、私はこの時間前に尋ねたスレッドのリンクです: Android Developers Google Group

は注意:あなただけのjarファイルにあなたのproyectをパックすることができますが、AndroidアプリがインストールされているのAPKを使用しています。 jarアプリケーションファイルをインストールできるかどうかはわかりませんが、可能性はありません。

関連する問題