Home | 简体中文 | 繁体中文 | 杂文 | Github | 知乎专栏 | Facebook | Linkedin | Youtube | 打赏(Donations) | About
知乎专栏

4.11. Res 资源

4.11.1. 通过名称查找 layout ID

查找 layout 资源

		
        // 用法 context.getResources().getIdentifier("test_layout", "layout", context.getPackageName());
        int test = context.getResources().getIdentifier("test", "layout", "cn.netkiller.album ");
        Log.d(TAG, test + " id ");		
		
		

4.11.2. 查找 drawable 资源 ID

查找 drawable 资源

		
		// 用法 context.getResources().getIdentifier("ic_launcher","drawable",context.getPackageName())
		
        int identifier = context.getResources().getIdentifier("hotel1", "drawable", context.getPackageName());
        Log.d(TAG, "Resource identifier: " + identifier + " ");		
		
		

4.11.3. 获取 color 颜色 ID

获取res文件夹下的color.xml文件下某个颜色字段的id

		
		context.getResources().getIdentifier("yellow","color",context.getPackageName())
		
		

4.11.4. 获取 array.xml 文件下某个字段的 ID

获取array.xml文件里名为“my_array”的id

		
context.getResources().getIdentifier("my_array","array",context.getPackageName())		
		
		

4.11.5. 获取 style.xml 文件下的某个样式的 id

获取value下style.xml文件下的某个样式的id

		
context.getResources().getIdentifier("dialog_style","style",context.getPackageName())		
		
		

4.11.6. 主题 themes.xml

4.11.6.1. ActionBar

选择一个带有ActionBar的主题,例如 Theme.MaterialComponents.DayNight.DarkActionBar

			
<resources xmlns:tools="http://schemas.android.com/tools">
    <!-- Base application theme. -->
    <style name="Theme.WebRTC" parent="Theme.MaterialComponents.DayNight.DarkActionBar.Bridge">
        <!-- Primary brand color. -->
        <item name="colorPrimary">@color/purple_500</item>
        <item name="colorPrimaryVariant">@color/purple_700</item>
        <item name="colorOnPrimary">@color/white</item>
        <!-- Secondary brand color. -->
        <item name="colorSecondary">@color/teal_200</item>
        <item name="colorSecondaryVariant">@color/teal_700</item>
        <item name="colorOnSecondary">@color/black</item>
        <!-- Status bar color. -->
        <item name="android:statusBarColor">?attr/colorPrimaryVariant</item>
        <!-- Customize your theme here. -->
    </style>
</resources>			
			
			

如果需要返回按钮,请使用带有 Bridge 的主题,例如 parent="Theme.MaterialComponents.DayNight.DarkActionBar.Bridge"

			
public class AboutActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_about);

		// 获取ActionBar
        ActionBar actionBar = getSupportActionBar();  
        if (actionBar != null) {
            actionBar.setTitle("关于");  // 设置ActionBar的标题
            actionBar.setSubtitle("请详细阅读");  // 副标题
            actionBar.setDisplayHomeAsUpEnabled(true);  // 设置返回按钮
        }
    }
    
	// 监听返回按钮,如果点击返回按钮则关闭当前Activity
    @Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {
        if (item.getItemId() == android.R.id.home) {
            this.finish();
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}