1 / 12

Android 使用访问图片

Android 使用访问图片. 创建 Drawable 对象. Android 在访问图片时,使用 Drawable 类及其子类 BitmapDrawable 、 ColorDrawable 、 ShapeDrawable 等类处理,关于 Drawable 类的初始化有三种方式,一是使用在工程中保存的图片;二是使用 mxl 定义 Drawable 属性;三是使用构造器来完成,但这种方法不经常被采纳。. 使用图片创建 Drawable 对象,在资源文件中保存一图片文件 test.jpg ,然后通过 R.drawable.test 使用该图片,代码如下:

ewan
Télécharger la présentation

Android 使用访问图片

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Android使用访问图片

  2. 创建Drawable对象 Android在访问图片时,使用Drawable类及其子类BitmapDrawable、ColorDrawable、ShapeDrawable等类处理,关于Drawable类的初始化有三种方式,一是使用在工程中保存的图片;二是使用mxl定义Drawable属性;三是使用构造器来完成,但这种方法不经常被采纳。 使用图片创建Drawable对象,在资源文件中保存一图片文件test.jpg,然后通过R.drawable.test使用该图片,代码如下: ImageView imgv = (ImageView)findViewById(R.id.imgv); imgv.setImageResource(R.drawable.test); 也可以使用xml文件定义Drawable对象 例如:在AndroidManifest.xml文件中定义应用的图标: <application android:icon=@drawable/icon......... 在布局文件中定义一个ImageView时指定Drawable对象 <ImageView android:id="@+id/imgv" android:layout_width="fill-parent" android:layout_height="wrap_content" android:src="@drawable/test" />

  3. Bitmap和BitmapFactory 需要Bitmap和BitmapFactory两个类来读取文件 例如: public class MainActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Bitmap bm = BitmapFactory.decodeFile( getResources(),R.drawable.mybmp); ); ImageView iv = new ImageView(this); iv.setImageBitmap(bm); this.setContentView(iv); } }

  4. 动态图形绘制

  5. 动态图形绘制的基本思路是,创建一个View类或者SurfaceView类,重写onDraw()方法,使用Canvas对象在界面上绘制不同图形,使用invalidate()方法刷新界面。动态绘制图形的常见类有Canvas、Paint、Color、Path等。动态图形绘制的基本思路是,创建一个View类或者SurfaceView类,重写onDraw()方法,使用Canvas对象在界面上绘制不同图形,使用invalidate()方法刷新界面。动态绘制图形的常见类有Canvas、Paint、Color、Path等。

  6. 实验1:飞舞的小球,在这个例子中,通过自定义View,并继承View类,实验1:飞舞的小球,在这个例子中,通过自定义View,并继承View类, 通过多线程机制不断的绘制并刷新,实现小球飞舞的情景。如图所示

  7. 代码如下: • class MyView extends View implements Runnable { • // 图形当前坐标 • private int x = 20, y = 20; • //坐标控制开关 • boolean flagy = true; • boolean flagx = true; • // 构造方法 • public MyView(Context context, AttributeSet attrs) { • super(context, attrs); • // 获得焦点 • setFocusable(true); • // 启动线程 • new Thread(this).start(); • }

  8. public void run() { • while(!Thread.currentThread().isInterrupted()){ • MyView.this.update(); • try { • Thread.sleep(10); • } catch (InterruptedException e) { • e.printStackTrace(); • } • } • } • @Override • protected void onDraw(Canvas canvas) { • super.onDraw(canvas); • // 实例化画笔 • Paint p = new Paint(); • // 设置画笔颜色 • p.setColor(Color.WHITE); • // 画圆 • canvas.drawCircle(x, y, 20, p); • MyView.this.postInvalidate(); • }

  9. // 更新坐标 • private void update() { • int h = getHeight(); • int w = getWidth(); • if(x==w-20) flagx = false; • if(y==h-20) flagy = false; • if(x==20) flagx = true; • if(y==20) flagy=true; • if(flagy) y+=5; • if(!flagy) y-=5; • if(flagx) x+=5; • if(!flagx) x-=5; • } • } public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); MyView v = new MyView(this,null); setContentView(v); } }

  10. 图形特效

  11. 使用Matrix实现旋转平移和缩放 在Android系统中Matrix类是一个矩阵,该类中有一个3*3的矩阵坐标,通过该类可以实现旋转、平移和缩放的综合应用。使用reset()方法初始化矩阵,使用setScale()设置缩放属性,setTranslate()设置平移属性,setRotate()设置旋转属性。 1 0 0 0.707 -0.707 0 0 1 0 --旋转45度后 0.707 0.707 0 0 0 1 0 0 1 平移到100,150后 1 0 100 0 1 150 0 0 1

  12. 实践

More Related