# Day04-Android
Day04-Android
标签(空格分隔): andrroid
1.制作界面
2.在写Activity
.
Logcat
LayoutInflate
把Xml转换纯成View的工具。
自定义吐司
LayoutParams.LayoutParams
布局参数。设计宽高
读源码心得
1.LinearLayout
是ViewGroup
的子类。而布局参数LayoutParams
是一个静态类,主要是用来设计各个 控件的长宽高,根据不同类继承。每个特定的布局类有自己同的属性,所以在封装的时候类也会不同。
1.中午写完自定义toast界面在睡觉;
问题
- 适配器里适配的是哪个控件的属性?完成
- 对话框练习,墙纸的更换;完成
- 稀疏布尔数组是什么玩意?完不成。
Toast
自定义界面。完成- 对话框的练习?完成
- 工厂设计模式;完成
getResources()
方法的作用 完成
解决问题:
- 7.
getResources()
方法的作用
资源包
package android.content.res;
在安卓里面所属的是这样的资源包,而getResources()
方法在ContextThemeWrapper
类里面重写了该方法,重要的是一个Activity
继承并且实现了如下的类
public class Activity extends ContextThemeWrapper
implements LayoutInflater.Factory2,
Window.Callback, KeyEvent.Callback,
OnCreateContextMenuListener,ComponentCallbacks2,
Window.OnWindowDismissedCallback
而当中的ContextThemeWrapper
该方法
-
工厂设计模式;
就是内部创建一个工厂类,用来初始化该类,通过工厂类来初始化该类的对象。 -
2.墙纸的更换
<!-- 设置手机壁纸,需要权限 -->
<uses-permission android:name="android.permission.SET_WALLPAPER"/>
/**
* 一个长按修改手机壁纸的方法。
*/
private void setPaper()
{
// 获取到控件,
final ImageView bgimg_tv = (ImageView) findViewById(R.id.bgimg_tv);
// 设置监听事件
bgimg_tv.setOnLongClickListener(new View.OnLongClickListener()
{
@Override
public boolean onLongClick(View v)
{
// 通过图片控件前景图片属性来设置手机壁纸
System.out.println("长按触摸监听");
try
/**
* 、 Drawable :可绘制的资源,包含 Bitmap、图层,可绘制的颜色资源等,它是一个抽象类
*
*/
{ // 清除手机壁纸
clearWallpaper();
// getDrawable获取到的全景图片
Drawable drawable = bgimg_tv.getDrawable();
// 位图对形象
BitmapDrawable bitmapDra = (BitmapDrawable) drawable;
// bitmap是一个位图格式,如bigMap等等。
Bitmap bitmap = bitmapDra.getBitmap();
setWallpaper(bitmap);
} catch (IOException e)
{
e.printStackTrace();
}
return true;
// 如果返回
}
});
}
- 4.
Toast
自定义界面。
* 自己定义一个xml界面
*/
public void showXmlLayout(View v)
{
/**
* 想要吐出一个界面:用xml布局的。 设计出要吐出的界面。 resoure : 我们要加载的xml文件的资源id root:
* 是否要加入的到父控件当中
*/
View layoutView = LayoutInflater.from(context).inflate(R.layout.toast_layout, null);
// 设置文本的参数 设置加载文本文件的参数,必须通过LayoutView获取。
TextView textView = (TextView) layoutView.findViewById(R.id.title_tv);
textView.setText("你怎么看待这个问题!");
// 创建toast对象,
Toast toast = new Toast(context);
// 把要Toast的布局文件放到toast的对象中
toast.setView(layoutView);
toast.setDuration(toast.LENGTH_SHORT);
toast.setGravity(Gravity.TOP, 70, 80);
toast.show();
}
脑洞大开
- 一定要有目的有机会的去学习编程。这样写程序会更快许多。