HTML 教程

HTML 属性

属性是 HTML 元素提供的附加信息。

属性总是以 name="value" 的形式写在标签内,name 是属性的名称,value 是属性的值。

HTML 属性属性实例

HTML 链接由 标签定义。链接的地址在 href 属性中指定:

实例

这是一个链接

尝试一下 »

HTML 属性常用引用属性值

属性值应该始终被包括在引号内。

双引号是最常用的,不过使用单引号也没有问题。

提示: 在某些个别的情况下,比如属性值本身就含有双引号,那么您必须使用单引号,例如:

name='John "ShotGun" Nelson'

HTML 提示:使用小写属性

属性和属性值对大小写不敏感。

不过,万维网联盟在其 HTML 4 推荐标准中推荐小写的属性/属性值。

而新版本的 (X)HTML 要求使用小写属性。

HTML 属性参考手册

查看完整的HTML属性列表:HTML 标签参考手册。

下面列出了适用于大多数 HTML 元素的属性:

属性描述

class

html元素定义一个或多个类名(classname)(类名从样式文件引入)

id

定义元素的唯一id

style

规定元素的行内样式(inline style)

title

描述了元素的额外信息 (作为工具条使用)

id: 给元素一个唯一的标识符,可以用于 CSS 选择器或 JavaScript 操作。

class: 给元素指定一个或多个类名,方便通过 CSS 或 JavaScript 操作。

This is a paragraph.

style: 直接为元素定义 CSS 样式。

This text is red.

href: 用于 标签,指定链接目标。

Visit Example

src: 用于

如何获取鸿蒙系统相册图片?

前几天有朋友问我如何通过 AVStorage 来获取鸿蒙系统相册的图片,这个操作在我们平时开发时也经常用到,今天就分享一下鸿蒙系统访问系统相册的方法。

核心代码参考官方媒体存储数据操作开发指导的示例:

鸿蒙的 AVStorage 对应的是 Android 中的 MediaStore,都是用于操作系统媒体数据库的类。

但是现在开放的功能不如 MediaStore 强大,很多操作需要用的字段还找不到。

这里我先通过一段安卓程序往系统相册目录中写入三张图片,并插入媒体数据库:

//将文件保存到公共的媒体文件夹
//这里的filename单纯的指文件名,不包含路径
@RequiresApi(Build.VERSION_CODES.Q)
fun saveImage(fileName: String, bitmap: Bitmap) {
    try {
        //设置保存参数到ContentValues中
        val contentValues = ContentValues()
        //设置文件名
        contentValues.put(MediaStore.Images.Media.DISPLAY_NAME, fileName)
        //android Q中不再使用DATA字段,而用RELATIVE_PATH代替
        //RELATIVE_PATH是相对路径不是绝对路径
        //DCIM是系统文件夹,关于系统文件夹可以到系统自带的文件管理器中查看,不可以写没存在的名字
        contentValues.put(MediaStore.Images.Media.RELATIVE_PATH, "DCIM/");
        //设置文件类型
        contentValues.put(MediaStore.Images.Media.MIME_TYPE, "image/JPEG")
        //执行insert操作,向系统文件夹中添加文件
        //EXTERNAL_CONTENT_URI代表外部存储器,该值不变
        val uri = contentResolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues)
        if (uri != null) {
            //若生成了uri,则表示该文件添加成功
            //使用流将内容写入该uri中即可
            val outputStream: OutputStream? = contentResolver.openOutputStream(uri)
            if (outputStream != null) {
                bitmap.compress(Bitmap.CompressFormat.JPEG, 90, outputStream)
                outputStream.flush()
                outputStream.close()
            }
        }
    } catch (e: Exception) {
        e.printStackTrace()
    }
}

val bitmap = resources.getDrawable(R.mipmap.ic_launcher, null).toBitmap()
saveImage("test", bitmap)

这里我是放在点击事件回调中,点击三次,插入了三张同样的图片,该方法会自动给重复的图片重命名。

通过 AS 的文件管理器和系统的图库我们可以看到已经写入成功了,接下来再用系统相机拍两张照片,以创建不同来源的媒体图片,同样可在文件管理器和图库中查看结果。

这样,数据就做好了,接下来,我们通过鸿蒙提供的 API 来获取系统相册的图片并显示出来。

首先,读取系统相册需要获取 ohos.permission.READ_USER_STORAGE 权限,我们需要在 config.json 中加入如下代码:

"reqPermissions": [{"name""ohos.permission.READ_USER_STORAGE"}]

并且,该权限需要动态申请,我们需要在 ability 中手动申请权限:

String[] permissions = {"ohos.permission.READ_USER_STORAGE"};
requestPermissionsFromUser(permissions, 0);

获取到权限之后,我们就可以通过 DataAbilityHelper 和 AVStorage 来查询媒体数据库了。

获取媒体外部存储中的图片 URI 需要使用的预定义字段是:AVStorage.Images.Media.EXTERNAL_DATA_ABILITY_URI:

private void showImage() {
    DataAbilityHelper helper = DataAbilityHelper.creator(this);
    try {
        // columns为null,查询记录所有字段,当前例子表示查询id字段
        ResultSet resultSet = helper.query(AVStorage.Images.Media.EXTERNAL_DATA_ABILITY_URI, new String[]{AVStorage.Images.Media.ID}, null);
        while (resultSet != null && resultSet.goToNextRow()) {
            PixelMap pixelMap = null;
            ImageSource imageSource = null;
            Image image = new Image(this);
            image.setWidth(250);
            image.setHeight(250);
            image.setMarginsLeftAndRight(1010);
            image.setMarginsTopAndBottom(1010);
            image.setScaleMode(Image.ScaleMode.CLIP_CENTER);
            // 获取id字段的值
            int id = resultSet.getInt(resultSet.getColumnIndexForName(AVStorage.Images.Media.ID));
            Uri uri = Uri.appendEncodedPathToUri(AVStorage.Images.Media.EXTERNAL_DATA_ABILITY_URI, String.valueOf(id));
            FileDescriptor fd = helper.openFile(uri, "r");
            try {
                imageSource = ImageSource.create(fd, null);
                pixelMap = imageSource.createPixelmap(null);
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                if (imageSource != null) {
                    imageSource.release();
                }
            }
            image.setPixelMap(pixelMap);
            tableLayout.addComponent(image);
        }
    } catch (DataAbilityRemoteException | FileNotFoundException e) {
        e.printStackTrace();
    }
}

我们通过一个 TableLayout 来模仿图库界面展示获取到的系统相册图片:

tableLayout = (TableLayout) findComponentById(ResourceTable.Id_table);
tableLayout.setColumnCount(4);
showImage();

至此,我们就获取到了系统相册目录下的图片。

本站内容来自用户投稿,如果侵犯了您的权利,请与我们联系删除。联系邮箱:835971066@qq.com

本文链接:http://news.xiuzhanwang.com/post/763.html

发表评论

评论列表

还没有评论,快来说点什么吧~

友情链接: