当前位置:  编程技术>移动开发
本页文章导读:
    ▪TextView跑马灯成效2        TextView跑马灯效果2  参考 http://blog.csdn.net/sky181772733/article/details/7003125         在前一篇讲到ListView中TextView跑马灯效果的问题。一种比较友好的方式是,ListView中只有被选中项才会触发跑马.........
    ▪ 相机-调用        照相机---调用 ZTE-N760 摄像头像素:320万像素,最大支持2048×1536像素照片拍摄 屏幕分辨率:3.5英寸,分辨率为480×320的电容式屏幕 像素和尺寸:每一厘米等于28像素;若分辨率不变,增加照.........
    ▪ 起动应用的方法,以camera模块为例       启动应用的方法,以camera模块为例 //通过包名和类名启动activity     private void openCamera() {         Logger.d(TAG, "openCamera");         ComponentName component = new ComponentName("com.android.camera", "Ca.........

[1]TextView跑马灯成效2
    来源: 互联网  发布时间: 2014-02-18
TextView跑马灯效果2

 参考 http://blog.csdn.net/sky181772733/article/details/7003125

 

      在前一篇讲到ListView中TextView跑马灯效果的问题。一种比较友好的方式是,ListView中只有被选中项才会触发跑马灯效果。

 

       实现的思路是:监听到ListView的onItemClick事件时记录当前item的postion,并通知adapter数据发生改变(另一个item被选中,selected状态改变),需要getView更新View(之前selected的item停止跑马灯效果,当前selected的item开始跑马灯效果)。 下面看看是具体怎么实现的,

 

public class MainActivity extends ListActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        final MyArrayAdapter adapter = new MyArrayAdapter(this,
                R.layout.list_item, R.id.textView1);
        adapter.add("超长的文本超长的文本超长的文本");
        adapter.add("超长的文本超长的文本超长的文本");
        adapter.add("超长的文本超长的文本超长的文本");
        adapter.add("超长的文本超长的文本超长的文本");
        adapter.add("超长的文本超长的文本超长的文本");
        adapter.add("超长的文本超长的文本超长的文本");
        getListView().setAdapter(adapter);

        getListView().setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                // 设置选中项
                adapter.setSelectedIndex(position);
                // 通知adapter数据发生变化(TextView的selected状态发生变化)
                adapter.notifyDataSetChanged();
            }
        });
    }

    class MyArrayAdapter extends ArrayAdapter<String> {

        public MyArrayAdapter(Context context, int resource,
                int textViewResourceId) {
            super(context, resource, textViewResourceId);
        }

        private int mSelectedIndex;

        public void setSelectedIndex(int index) {
            this.mSelectedIndex = index;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            View v = super.getView(position, convertView, parent);

            TextView tv = (TextView) v.findViewById(R.id.textView1);
            if (mSelectedIndex == position) {
                tv.setSelected(true);
            } else {
                tv.setSelected(false);
            }
            return v;
        }
    }
} 

运行效果如下,代码见附件


 


    
[2] 相机-调用
    来源: 互联网  发布时间: 2014-02-18
照相机---调用

ZTE-N760

摄像头像素:320万像素,最大支持2048×1536像素照片拍摄

屏幕分辨率:3.5英寸,分辨率为480×320的电容式屏幕

像素和尺寸:每一厘米等于28像素;若分辨率不变,增加照片尺寸,就会出现马赛克;在COMS/CCD尺寸不变的情况下,像素越低,打印出来的照片越小,像素越高,打印出来的照片就越大。

 

1.调用自带照相机进行照相,然后返回,并保存到指定目录下,预览照片。结果如下:

 

 

2.程序代码

 

package com.photos;

 

import java.io.File;

import java.text.SimpleDateFormat;

import java.util.Date;

 

import android.net.Uri;

import android.os.Bundle;

import android.os.Environment;//供访问环境变量

import android.app.Activity;

import android.content.Intent;

import android.view.Display;

import android.view.Menu;

import android.view.View;

import android.widget.ImageView;

import android.widget.Button;

import android.graphics.Bitmap;

import android.graphics.BitmapFactory;

import android.hardware.Camera;

 

 

publicclass MainActivity extends Activity {

    finalstaticintCAMERA_RESULT = 0;

    Button mButton1;

    ImageView mImageView1;

    String imageFilePath;

 

    @Override

    protectedvoid onCreate(Bundle savedInstanceState) {

       super.onCreate(savedInstanceState);

       setContentView(R.layout.activity_main);

       mButton1 = (Button)findViewById(R.id.myButton1);

      

       //点击照相按钮响应

       mButton1.setOnClickListener(new Button.OnClickListener(){

 

           @Override

           publicvoid onClick(View arg0) {

              // TODO Auto-generated method stub

              // 获取系统的时间:年月日_时分秒作为文件名称

              String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());

             

              // 获取SD卡路径返回扩展存储区目录(SDCard)+子目录/DCIM/mytest+File.separator是一个分隔符"\" + 文件名称 

              imageFilePath = Environment.getExternalStorageDirectory() 

                       .toString()+"/DCIM/mytest" + File.separator+”IMG_”+timeStamp +".jpg"; 

             

              // 在指定路径下,新建文件用来存储照片信息

              File imageFile = new File(imageFilePath); 

              

              //URI是统一资源标识符(Uniform Resource Identifier) 的意思,它的作用是根据这个URI找到某个资源文件

              Uri imageFileUri = Uri.fromFile(imageFile); 

             

              //new一个Intent 调用照相机照相

               Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 

               i.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, imageFileUri); 

               //调用一个新的Activity

               startActivityForResult(i, CAMERA_RESULT); 

           }

           ;

       });

    }

       @Override

    protectedvoid onActivityResult(int requestCode, int resultCode, Intent data) {

       // TODO Auto-generated method stub

      

       super.onActivityResult(requestCode, resultCode, data);

      

       //如果拍照成功 

        if (resultCode == RESULT_OK) { 

       

        //获取ImageView控件

           mImageView1 = (ImageView) findViewById(R.id.myImageView1); 

 

            //取得屏幕的显示大小 

            Display currentDisplay = getWindowManager().getDefaultDisplay(); 

            int dw = currentDisplay.getWidth(); 

            int dh = currentDisplay.getHeight(); 

            /**

             * 为了计算缩放的比例,我们需要获取整个图片的尺寸,而不是图片

             * BitmapFactory.Options类中有一个布尔型变量inJustDecodeBounds,将其设置为true

             * 这样,我们获取到的就是图片的尺寸,而不用加载图片了。

             * 当我们设置这个值的时候,我们接着就可以从BitmapFactory.Options的outWidth和outHeight中获取到值

             */ 

            //对拍出的照片进行缩放 

            BitmapFactory.Options bmpFactoryOptions = new BitmapFactory.Options(); 

         

            //将其设置为true来获取图片尺寸了

            bmpFactoryOptions.inJustDecodeBounds = true; 

            Bitmap bmp = BitmapFactory.decodeFile(imageFilePath, 

                    bmpFactoryOptions); 

 

            int heightRatio = (int) Math.ceil(bmpFactoryOptions.outHeight 

                    / (float) dh);  //计算高度比例 

            int widthRatio = (int) Math.ceil(bmpFactoryOptions.outWidth 

                    / (float) dw);  //计算宽度比例 

             

            /**

             * 接下来,我们就需要判断是否需要缩放以及到底对宽还是高进行缩放。

             * 如果高和宽不是全都超出了屏幕,那么无需缩放。

             * 如果高和宽都超出了屏幕大小,则如何选择缩放呢》

             * 这需要判断wRatio和hRatio的大小

             * 大的一个将被缩放,因为缩放大的时,小的应该自动进行同比率缩放。

             * 缩放使用的还是inSampleSize变量

             */

            if (heightRatio > 1 && widthRatio > 1) { 

                  if (heightRatio > widthRatio) { 

                      bmpFactoryOptions.inSampleSize = heightRatio; 

                } else { 

                    bmpFactoryOptions.inSampleSize = widthRatio; 

                } 

              } 

  //注意这里,一定要设置为false,因为上面我们将其设置为true来获取图片尺寸了 

            bmpFactoryOptions.inJustDecodeBounds = false;

            bmp = BitmapFactory.decodeFile(imageFilePath, bmpFactoryOptions); 

              mImageView1.setImageBitmap(bmp); 

          } 

    }

    @Override

    publicboolean onCreateOptionsMenu(Menu menu) {

       // Inflate the menu; this adds items to the action bar if it is present.

       getMenuInflater().inflate(R.menu.main, menu);

       returntrue;

    }

}

调用自带的摄像机:

    Intent i = new Intent(android.provider.MediaStore.ACTION_VIDEO_CAPTURE); 

               i.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, imageFileUri);

               i.putExtra(android.provider.MediaStore.EXTRA_VIDEO_QUALITY, 1);//设置视频

 

不知道为什么,在调用摄像机的时候,加入我设置了路径,那么保存下来的录像文件竟然是空的,不懂?所以我设置了错误的路径,就是在SD卡上不存在的路径,那么保存下来的录像文件就保存在了默认文件夹下 DCIM/Camera/ 这时候文件是好的??不懂为什么?

 

 


    
[3] 起动应用的方法,以camera模块为例
    来源: 互联网  发布时间: 2014-02-18
启动应用的方法,以camera模块为例

//通过包名和类名启动activity  

  private void openCamera() {

        Logger.d(TAG, "openCamera");

        ComponentName component = new ComponentName("com.android.camera", "CameraLauncher");

        Intent intent = new Intent();

        intent.setComponent(component);

        mActivity.startActivity(intent);

    }

 

//通过action启动应用

    private void openCamera() {

        Intent intent = new Intent();

        intent.setAction("android.media.action.STILL_IMAGE_CAMERA");

        mActivity.startActivity(intent);

    }


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3