canvas教程

在canvas下画图保存成jpg

字号+ 作者:H5之家 来源:H5之家 2016-02-26 15:00 我要评论( )

[在canvas下画图保存成jpg ]: 在canvas上画图保存成jpgBitmap bitmap = Bitmap.createBitmap( view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888); C

PopupWindow 使用及延伸

PopupWindow

[功能]

PopupWindow作为一种用户提醒 而且其开销也比Activity要小

[代码 步骤]

1. 定义布局 供PopupWindow使用 如:hello.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="10dp" > <ImageView android:id="@+id/image" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/robot" /> <LinearLayout android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingLeft="20dip" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="HelloPop!" /> <Button android:id="@+id/helloButton" android:layout_width="100dip" android:layout_height="wrap_content" android:text="OK" /> </LinearLayout> </LinearLayout>

2. 通过LayoutInflater 得到hello.xml 的 View view

view = this.getLayoutInflater().inflate(R.layout.hello, null);

3. 创建PopupWindow pop 使用上面布局文件view

pop = new PopupWindow(view,500,200);

4. 弹出PopupWindow

* 定义布局文件:main.xml 包括一个Button

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:id="@+id/main" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="pop demo!" /> <Button android:id="@+id/button" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="to pop!" /> </LinearLayout>

* 弹出:有2种方式:一个是下拉方式 一个是指定位置

- 下拉:

findViewById(R.id.button).setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub pop.showAsDropDown(v); } });

- 指定位置:

findViewById(R.id.button).setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub pop.showAtLocation(findViewById(R.id.main), Gravity.CENTER, 20, 20); } });

5. 取消

view.findViewById(R.id.helloButton).setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub pop.dismiss(); } });

6. 其他问题:

* 发现很多人对PopupWindow 里面包含ListView后 对具体哪个item被点击的获取有疑问 所以就顺便测试一下 发现和普通用法一样啊 没什么特别之处啊 现在把用法和大家分享分享

写道

因为ListView是展开显示的 会导致不美观 所以以Spinner为例

6.1. 定义包含Spinner 的布局文件 hello.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" > <ImageView android:id="@+id/image" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/robot" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="HelloPop!" /> </LinearLayout> <Spinner android:id="@+id/spinner" android:layout_width="wrap_content" android:layout_height="40dip"/> </LinearLayout>

6.2. 得到Spinner的实例:spinner

spinner = (Spinner)view.findViewById(R.id.spinner);

6.3. 绑定Spinner与具体数据 本例以联系人为例

public void specifySpinner(){ Cursor c = getContentResolver().query(People.CONTENT_URI, null, null, null, null); SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1,c, new String[] {People.NAME}, new int[] {android.R.id.text1}); adapter.setDropDownViewResource( android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(adapter); }

写道

别忘了联系人访问权限:

<uses-permission android:name="android.permission.READ_CONTACTS" />

6.4. 具体item的获取:

spinner.setOnItemSelectedListener(new OnItemSelectedListener(){ public void onItemSelected(AdapterView<?> adapter,View v, int pos, long id) { updateTitle(pos); } public void onNothingSelected(AdapterView<?> arg0) { // TODO Auto-generated method stub } });

写道

updateTitle(int) 用来把位置在标题中显示

public void updateTitle(int i){
this.setTitle("HelloPop:"+i);
}

6.5. emulator 运行截图:

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • html5canvas核心技术图形、动画与游戏开发源码

    html5canvas核心技术图形、动画与游戏开发源码

    2017-05-02 17:42

  • 打印html5中Canvas的方法

    打印html5中Canvas的方法

    2017-05-01 15:03

  • HTML5+Canvas调用手机拍照功能实现图片上传(下)

    HTML5+Canvas调用手机拍照功能实现图片上传(下)

    2017-04-30 17:00

  • 学习慕课网canvas倒计时实例笔记

    学习慕课网canvas倒计时实例笔记

    2017-04-30 14:01

网友点评
s