Android App 开发学习第六天:资源

字符串资源

  1. 定义字符串资源文件 <string

  2. 使用字符串资源
    在xml中使用

      android:text="@string/earn"
在java中使用
        TextView textView = this.findViewById(R.id.textview);
        textView.setText(getResources().getString(R.string.earn));

颜色资源

#透明度RGB

  1. 定义颜色资源文件<color
  2. 使用颜色资源
    xml
        android:textColor="@color/black"

java
        textView.setTextColor(getResources().getColor(R.color.black));

尺寸资源

dp:设备独立像素,设置边距,组件大小
sp:字体大小

  1. 定义尺寸资源文件<dimen
        android:textSize="@dimen/title"

  1. 使用尺寸资源
        textView.setTextSize(getResources().getDimension(R.dimen.title));

布局资源

在一个布局资源文件中引用另一个布局资源文件

<include layout="@layout/image"></include>

数组资源

定义数据资源文件
<array:定义尺寸资源
<integer-array:定义整形数组
<string-array:定义字符串数组
使用数组资源
xml

    android:entries="@array/zzz"
java
String[] arr = getResources().getStringArray(R.array.zzz);

图像资源

  1. Drable资源
    drawable-hdpi
    drawable-mdpi
    drawable-xhdpi
    drawable-xxhdpi
    drawable-xxxhdpi
    图片资源
    绘制.9.png图片
    StateListDrawable资源
    用来设置组件状态的,如设置编辑框选中和未选中的颜色,或设置按钮可用和不可用状态

实现当为输入密码时登录按钮为不可用
定义一个StateListDrawable资源放进drawable文件中

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="true" android:drawable="@drawable/bg_textview"></item>
    <item android:state_enabled="false" android:drawable="@drawable/bg_textview2"></item>
</selector>
 <EditText
        android:id="@+id/editText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="请填写密码"
        android:textColor="@drawable/edittext_focus"/>
   <Button
       android:id="@+id/btn"
       android:layout_height="wrap_content"
       android:layout_width="wrap_content"
       android:text="@string/login"
       android:enabled="false"
       android:background="@drawable/bg_textview"
       android:textColor="@color/black"/>

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final EditText editText =  this.findViewById(R.id.editText);
        final Button button = this.findViewById(R.id.btn);
        editText.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                    if (editText.length()>0){
                        button.setEnabled(true);
                    }else {
                        button.setEnabled(false);
                    }
            }

            @Override
            public void afterTextChanged(Editable s) {

            }
        });
    }
}

mipmap资源
mipmap 存放应用程序启动图标
drawable 存放图像文件、9Patch、Shape、StateListDrawable

主题和样式资源

主题资源
在values包下创建styles资源文件,使用<style
parent="":继承父主题
标签定义主题
在Androidmanifest使用主题android:theme
在java代码中使用

setTheme(R.style.xxx);
setContentView(R.layout.activity_main);

该方法要在setContentView()方法前执行

样式资源
也是在styles中使用<style标签定义

在组件中使用
style="@style/name"
使用该样式资源

菜单资源

定义菜单资源文件
在res包下创建menu包再创建menu.xml文件
使用<menu标签定义菜单

<menu xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:id="message" android:title="消息"></item>
        <item android:id="m" android:title="消息"></item>
        <item android:id="s" android:title="消息"></item>
        <item android:id="aa" android:title="消息"></item>
</menu>

定义菜单。
在java代码中重写onCreateOptionsMenu()方法

 @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        MenuInflater menuInflater = new MenuInflater(this);
        menuInflater.inflate(R.menu.menu,menu);
        return super.onCreateOptionsMenu(menu);
    }

重写onOptionsItemSelected()方法实现当选中指定菜单时的事件,如Activity跳转


    @Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {
        switch (item.getItemId()) {
            case R.id.ssm:
//                    Intent intent =new Intent(MainActivity.this,);
//                startActivity(intent);
                break;
        }
        return super.onOptionsItemSelected(item);
    }

创建上下文菜单
长按显示菜单

为组件注册上下文菜单
添加上下文菜单
指定菜单项被选择时所应做出的处理

定义菜单资源
在java代码中使用registerForContextMenu()方法为组件注册上下文菜单
重写onCreateContextMenu()方法

    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
        MenuInflater menuInflater = new MenuInflater(this);
        menuInflater.inflate(R.menu.menu, menu);
    }

重写onContextItemSelected()方法对被选中的菜单进行处理

@Override
    public boolean onContextItemSelected(@NonNull MenuItem item) {
        return super.onContextItemSelected(item);
    }

Anddroid程序国际化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值