AAR
Android (lib1) にAPK
依存するリソース (文字列、アセット、ドローアブル) を使用できますか? AAR
lib1 が依存する推移的な (lib2) のリソースはどうですか?
質問する
1034 次
1 に答える
0
はい。
Android Archetypesを使用してプロジェクトを作成し、その下にandroid-with-test
2 つのプロジェクトを作成しました。プロジェクトのパッケージを からにandroid-library-quickstarts
変更する必要がありました。次に、lib1 を lib2 に依存させ、apk を lib1 に依存させました。android-library-quickstart
apklib
aar
両方のライブラリからレイアウト内のリソース ( の画像、 のフォント、 の文字列)Activity
を直接消費するを作成しました。lib2 は推移的な依存関係でしたが、そのリソースを使用できました。res/drawable
assets/fonts
values/strings.xml
activity_main.xml
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/library_1_string" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/library_2_string"/>
<TextView
android:id="@+id/library2_via_library1_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/library1" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/library2" />
<TextView
android:id="@+id/library1_font_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="library1.ttf"/>
<TextView
android:id="@+id/library2_font_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="library2.ttf"/>
</LinearLayout>
HelloAndroidActivity.java public class HelloAndroidActivity extends Activity {
/**
* Called when the activity is first created.
* @param savedInstanceState If the activity is being re-initialized after
* previously being shut down then this Bundle contains the data it most
* recently supplied in onSaveInstanceState(Bundle). <b>Note: Otherwise it is null.</b>
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView library2ViaLibrary1TextView = (TextView) findViewById(R.id.library2_via_library1_text_view);
library2ViaLibrary1TextView.setText(Library1.getLibrary2String(this));
TextView library1FontTextView = (TextView) findViewById(R.id.library1_font_text_view);
library1FontTextView.setTypeface(Typeface.createFromAsset(getAssets(), "fonts/library1.ttf"));
TextView library2FontTextView = (TextView) findViewById(R.id.library2_font_text_view);
library2FontTextView.setTypeface(Typeface.createFromAsset(getAssets(), "fonts/library2.ttf"));
}
}
于 2014-08-06T19:19:52.363 に答える