Android初级-常用控件(下),资源

01-进度条(ProgressBar)的概述,属性,常用方法

//在开发时,当需要下载或上传文件时,需要让用户知道当前的进度,就需要使用进度条 
//xml中使用 
    
 
//减少或增加进度,值为整数就是增加,负数就是减少 
pb_show.incrementProgressBy(-5);//第一进度 
pb_show.incrementSecondaryProgressBy(-3);//第二进度

02-拖动条(SeekBar)的概述,属性,常用方法

 
//在开发过程中,音量及音视频播放的时候, 
//需要快速定位到某个地方,这时候可以使用拖动条来实现 
//xml中定义拖动条来使用 
 
//拖动SeekBar,进行监听,调整当前位置 
//为seekBar设置监听事件 
sb_id.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 
    //停止拖动 
    @Override 
    public void onStopTrackingTouch(SeekBar seekBar) { 
        Log.e("--Main--", "--------停止拖动-------"); 
    }
 
19
    //开始拖动 
    @Override 
    public void onStartTrackingTouch(SeekBar seekBar) { 
        Log.e("--Main--", "--------开始拖动-------"); 
    }
 
    //拖动中 
    @Override 
    public void onProgressChanged(SeekBar seekBar, 
                         int progress, boolean fromUser) { 
        Log.e("--Main--", "--------拖动中:progress="+progress); 
        iv_head.setAlpha(progress);//修改图片的透明度 
        tv_show.setText(String.valueOf(progress));//修改文本显示的内容 
    } 
});

03-AlertDialog作用以及使用场景,不同样式的对话框创建显示(两个案例 基本 和 自定义)

Android初级-常用控件(下),资源_第1张图片
image.png

1.普通对话框:

//在做删除修改退出等时,需要提示用户就需要用到提示框 
//AlertDialog弹出对话框就是完成这项功能的
 
// A:弹出普通对话框 
// 1.创建一个AlertDialog.Builder对象 
new AlertDialog.Builder(this) 
// 2.给Builder对象设置标题,图标等 
.setIcon(R.drawable.f).setTitle("普通对话框ssss") 
// 3.给Builder对象设置信息 
.setMessage("大家好帅吗?sssss") 
// 4.设置确定,取消按钮 
.setPositiveButton("帅ssss", new DialogInterface.OnClickListener() { 
    @Override 
    public void onClick(DialogInterface dialog, int which) { 
        Toast.makeText(MainActivity.this, "你选择帅sss", Toast.LENGTH_SHORT).show(); 
    } 
}).setNegativeButton("不帅sss", new DialogInterface.OnClickListener() { 
    @Override 
    public void onClick(DialogInterface dialog, int which) { 
        Toast.makeText(MainActivity.this, "你选择不帅sss", Toast.LENGTH_SHORT).show(); 
    } 
}) 
// 5.显示对话框 
.show();

2.自定义视图的对话框

Android初级-常用控件(下),资源_第2张图片
image.png
//创建线性布局 
LinearLayout ll = new LinearLayout(this); 
ll.setOrientation(LinearLayout.VERTICAL);//设置布局走向为垂直 
//创建输入框对象 
final EditText et_name = new EditText(this); 
et_name.setHint("请输入用户名"); 
final EditText et_psw = new EditText(this); 
et_psw.setHint("请输入密码");
 
Button button = new Button(this); 
button.setText("哈哈"); 
button.setLayoutParams(new ViewGroup.LayoutParams( 
LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); 
//将输入框添加到线性布局中 
ll.addView(et_name); 
ll.addView(et_psw); 
ll.addView(button);
 
//1.创建一个AlertDialog.Builder对象 
new AlertDialog.Builder(this) 
//2.给Builder对象设置图标,标题 
.setIcon(R.drawable.ic_launcher) 
.setTitle("自定义对话框") 
//3.给Builder对象设置自定义内容 
.setView(ll)//将自定义视图设置到对话框中 
//4.设置确定和取消按钮 
.setPositiveButton("确定", new DialogInterface.OnClickListener() { 
@Override 
public void onClick(DialogInterface dialog, int which) { 
    // 获取输入框中的内容 
    String name = et_name.getText().toString(); 
    String psw = et_psw.getText().toString(); 
    Toast.makeText(MainActivity.this, "输入框的内容是:用户名:"+ 
                    name+",密码:"+psw, Toast.LENGTH_SHORT).show(); 
    } 
}) 
.setNegativeButton("取消", null) 
//5.显示对话框 
.show();

04-通过java代码实现UI效果(最基础的)


//创建线性布局 
LinearLayout ll = new LinearLayout(this); 
ll.setOrientation(LinearLayout.VERTICAL);//设置布局走向为垂直 
//创建输入框对象 
final EditText et_name = new EditText(this); 
et_name.setHint("请输入用户名"); 
final EditText et_psw = new EditText(this); 
et_psw.setHint("请输入密码");

05-资源命名规范,以及应用资源的统一整理(尺寸适配和图片适配的命名)
dpi范围密度对应范围


dpi  密度 

0dpi ~ 120dpi  ldpi 

120dpi ~ 160dpi  mdpi 

160dpi ~ 240dpi  hdpi 

240dpi ~ 320dpi   xhdpi 

320dpi ~ 480dpi   xxhdpi 

480dpi ~ 640dpi   xxxhdpi 

对于每种密度下的icon应该设计成什么尺寸其实Android也是给出了最佳建议


mipmap-mdpi    48 * 48(博主实测图标16就够了) 

mipmap-hdpi     72 * 72(博主实测图标32就够了) 

mipmap-xhdpi     96 * 96(博主实测图标48就够了) 

mipmap-xxhdpi    144 * 144(博主实测图标64就够了) 

mipmap-xxxhdpi    192 * 192(博主实测图标72就够了) 

06-shape自定义图片

使用自定义shap步骤: 
1.在res下创建drawable目录 
2.在drawable目录下创建一个根标签为shape的xml文件 
3.去指定shape的形状及填充颜色等 
4.在布局资源中使用backgroud属性来引入使用该图形xml

//椭圆(圆) 
 
    //渐变色 
     


//矩形 
 
 
    //圆角 
     
    //填充颜色 
     



//环形 
 
 
    
 
      
    
 
         
         


//选择器 
 
 
     
    
 
      
     


07-style样式资源和theme主题资源的使用

//在styles.xml中定义自定义主题 
 
 
  
//java代码中为某个Activity设置该主题 
// Java代码实现:使用自定义的主题,在onCreate方法的setContentView方法之前使用 
setTheme(R.style.MyAppTheme); 
setContentView(R.layout.activity_theme);

 
//xml中使用自定义主题 
//在application标签下指定android:theme="@style/MyAppTheme" 主题, 
    //整个应用都使用该主题 
//在activity标签下指定android:theme="@style/MyAppTheme" 主题, 
    //只有该Activity有该主题 
 
         
        

08-style设置TextView 的宽高、字体大小及颜色、背景;theme的应用样式


 

09-raw与assets中资源的区别

 
/*在建立项目中一般会默认建立assets文件, 
    当然我们还可以在res文件下面建立raw文件夹, 
    这里面都可以存放一些图片,音频或者文本信息, 
    可以供我们在程序当中进行使用,不过他们两个也有不同点; 
    assets下面的文件不会被编译,通过路径可以去访问其中的内容。 
    raw中文件会自动编译,我们可以在R.java文件中找到对应的ID, 
 * Raw目录和Assets目录的区别 
 *  1.Raw目录下的文件可以映射到R文件中,Assets目录不可以 
 *  2.Raw目录下文件通过Resources类来获取, 
             Assets目录下的文件通过AssetsManager类来获取 
 * 3.Raw目录下不可以再创建文件夹,Assets目录可以 
 * 4.Raw目录和Assets目录都是原生资源,在Apk打包时不会编译成二进制文件。 
 */ 
 //1.获取AssetsManager对象 
// 1.获取AssetsManager对象 
AssetManager assetManager = getAssets(); 
try { 
    // 2.通过AssetsManager对象的open来获取文件名对应的输入流 
    InputStream is = assetManager.open("aa/test2.txt"); 
    // 3.将流转为字符串 
    BufferedReader br = new BufferedReader(new InputStreamReader(is, "gbk")); 
    StringBuffer sb = new StringBuffer(); 
    String line = null; 
    while ((line = br.readLine()) != null) { 
    sb.append(line); 
    }

 
    // 将读取到的内容吐司出来 
    Toast.makeText(this, sb.toString(), Toast.LENGTH_SHORT).show(); 
} catch (IOException e) { 
    e.printStackTrace(); 
}
 
// 1.获取raw目录下的文件,需要用到资源管理类 
Resources resources = getResources(); 
// 2.通过Resources对象的openRawResource(R.raw.test) 获取到指定的文件对应的流 
InputStream is = resources.openRawResource(R.raw.test); 
// 3.将流转为字符串 
try { 
    BufferedReader br = new BufferedReader(new InputStreamReader(is, "gbk")); 
    StringBuffer sb = new StringBuffer(); 
    String line = null; 
    while ((line = br.readLine()) != null) { 
    sb.append(line); 
    } 
    // 将读取到的内容吐司出来 
    Toast.makeText(this, sb.toString(), Toast.LENGTH_SHORT).show(); 
} catch (UnsupportedEncodingException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}

你可能感兴趣的:(Android初级-常用控件(下),资源)