Main Menu

Chủ Nhật, 30 tháng 10, 2016

WINDOWS STORE APPS - BUỔI 5

WINDOWS STORE APPS - BUỔI 5

1. Bài Tập 1 . Convert Video


Thêm Video vào project :
* Chỉnh properties cho MediaElement :
* Run Apps :
* Chỉnh sửa Giao diện :

*
*
*
* Viết sự kiện click cho button PickFile :
* Thêm 1 textBlock hiển thị tiến trình :
* Viết Code cho button Transcode :
private async void Transcode_Click(object sender, RoutedEventArgs e)
        {
            string outputFileName = NewFileName.Text;
            if (string.IsNullOrEmpty(outputFileName))
            {
                var ms = new MessageDialog("Please type new File Name.");
                ms.ShowAsync();
                return;
            }
          // Clear messages
            StatusMessage.Text = "";
            Transcode.IsEnabled = false;
            NewFileName.IsEnabled = false;
            InputVideo.Pause();
            const VideoEncodingQuality videoEncodingProfile = VideoEncodingQuality.Wvga;
            _profile = MediaEncodingProfile.CreateMp4(videoEncodingProfile);
            try
            {
                if (_inputFile != null)
                {
                    _outputFile = await KnownFolders.VideosLibrary.CreateFileAsync(outputFileName, CreationCollisionOption.ReplaceExisting);
                    var preparedTranscodeResult = await _transcoder.PrepareFileTranscodeAsync(_inputFile, _outputFile, _profile);
                    _transcoder.VideoProcessingAlgorithm = MediaVideoProcessingAlgorithm.Default;
                    if (preparedTranscodeResult.CanTranscode)
                    {
                        _cts = new CancellationTokenSource();
                        var progress = new Progress<double>(TranscodeProgress);
                        await preparedTranscodeResult.TranscodeAsync().AsTask(_cts.Token, progress);
                        TranscodeComplete();
                    }
                    else
                    {
                        TranscodeFailure(preparedTranscodeResult.FailureReason);
                    }
                }
            }
            catch (TaskCanceledException)
            {
                OutputText("");
                TranscodeError("Transcode Canceled");
            }
            catch (Exception exception)
            {
                TranscodeError(exception.Message);
            }

        }

* Thêm hàm TranscodeProgress(double percent) : => Hiển thị progressbar
** Thêm 2 textBlock vào giao diện : đặt names = outputPath và StatusMessage
* Thêm hàm TranscodeComplete() :
* Thêm hàm TranscodeFailure(TranscodeFailureReason reason)

* Thêm 3 Hàm cuối cùng :
*Chỉnh đường dẫn cho Video :
* Run Apps :
*

Cẩm Nang Tu Ðạo - Hòa Thượng Quảng Khâm ( có video clip về Hòa Thượng Quảng Khâm)

Cẩm Nang Tu Ðạo - Hòa Thượng Quảng Khâm ( có video clip về Hòa Thượng Quảng Khâm)

Thứ Bảy, 29 tháng 10, 2016

HƯỚNG DẪN LÀM RECYCLERVIEW CƠ BẢN

HƯỚNG DẪN LÀM RECYCLERVIEW CƠ BẢN

I. Gíơi Thiệu 
 RecyclerView là một UI Widget mới được google giới thiệu, một thư viện hỗ trợ mới trong Android Lollipop. RecyclerView gần giống với ListView nhưng có nhiều sự lựa chọn và hoạt động linh hoạt hơn. Khi bạn sử dụng ListView để tạo một danh sách, bạn chỉ có thể kéo danh sách theo chiều dọc, nhưng khi sử dụng RecyclerView, bạn có thể tạo danh sách kéo theo chiều dọc , chiều ngang, thậm chí là cả 2 chiều.
II. Demo Làm RecyclerView  
1. Trước tiên để dụng RecyclerView tại build.gradle thêm thư viện như sau :
compile 'com.android.support:recyclerview-v7:24.0.0'

 
2. Tiếp theo  chúng ta tạo giao diện cho từng phần tử trong RecyclerView bao gồm 1 TextView và 1 button Xóa  như sau :

 code xml :
 3. Tạo giao diện MainActivity :
 code xml :





3. Tạo class Data chứa dữ liệu của 1 phần tử , trong này ví dụ có tên thôi :
4. Tạo class CustomRecylerAdapter
* Giống như khi tùy biến ListView , chúng ta cấn tạo 1 Adapter riêng. Và ở đây cũng vậy , chúng ta tạo ra 1
 adapter cho RecyclerView là CustomRecyclerAdapter :
* Tiếp theo : 
* Tiếp theo : gán giá trị cho các View trong phương thức onBindViewHolder
* tạo thêm 2 hàm : addItem và removeItem
* Gọi hàm removeItem trong hàm Onclick
5. Viết code cho MainActivity :
* 
* Run App :
 

Thứ Tư, 19 tháng 10, 2016

Tư tưởng cốt lõi và động cơ của sự tiến bộ

Tư tưởng cốt lõi và động cơ của sự tiến bộ

Tư tưởng cốt lõi của một công ty hàng đầu có liên hệ chặt chẽ với một sự quyết tâm, thôi thúc, khao khát tiến bộ, thúc đẩy các thay đổi và dịch chuyển về phía trước trong mọi bộ phận không mang tính "cốt lõi". Ham muốn này mang tính chất rất "người" - ham muốn khám phá, sáng tạo, chiếm lĩnh, thay đổi và tiến bộ. Lòng khao khát tiến bộ không chỉ đơn thuần là những khẩu hiệu, nó phải là một khao khát sâu thẳm từ bên trong tổ chức.
Chính đó là điều đã khiến Sam Walton trong những ngày cuối đời vẫn tiếp tục bàn bạc về doanh số bán hàng với một nhân viên quản lý cửa hàng đến thăm ông ta trong bệnh viện. Đó cũng là những thôi thúc đối với J. Willard Marriott, người luôn sống theo phương châm "luôn luôn làm việc và cống hiến, đến tận khi lìa đời... làm sao cho mỗi ngày đều có ý nghĩa".

Niềm khao khát tiến bộ đó cũng thôi thúc Citigroup đặt mục tiêu trở thành một tổ chức tài chính hàng đầu thế giới ngay từ những ngày đầu, khi họ còn rất nhỏ bé, đến mức chỉ một mục tiêu táo bạo cũng có thể được xem là ngớ ngẩn, nếu không muốn nói là ngu ngốc. Điều đó cũng đã thôi thúc Walt Disney đặt cược danh tiếng của công ty vào Disneyland - một sản phẩm hoàn toàn không có một dữ kiện nào về nhu cầu thị trường trước đó. Ford cũng vậy. Với những thôi thúc tương tự, họ hướng tới tương lai với mục tiêu đầy tham vọng "dân chủ hóa xe hơi", từ đó đã để lại một dấu ấn không thể phai mờ trên thế giới. Đó cũng là lý do Motorola theo đuổi phương châm "luôn chuyển động vì lợi ích của chính sự chuyển động đó", theo đó họ liên tục đưa ra hàng loạt sản phẩm, theo đuổi tiêu chuẩn chất lượng tối ưu "sáu sigma" (3-4 phế phẩm trên 1.000.000 sản phẩm). Robert Galvin đã dùng từ "đổi mới, làm với" để nói về niềm khao khát tiến bộ của Motorola như sau:

Đổi mới là lực đẩy bên trong của công ty. Ngay từ ngày đầu thành lập công ty, với sản phẩm đầu tiên năm 1928, cha tôi đã bắt đầu nghiên cứu một sản phẩm như thế thay vì sản phẩm hiện tại được dự đoán sẽ lỗi thời vào năm 1930. Ông không bao giờ ngừng đổi mới và chúng tôi cũng vậy... Chỉ những ai trăn trở với những ý tưởng mới, dù mờ nhạt và khó nắm bắt, chỉ những ai sẵn sàng, chấp nhận cả rủi ro và hứa hẹn của những ý tưởng đó, người đó mới có thể thành công.

Niềm khao khát tiến bộ đã thôi thúc 3M liên tục thử nghiệm và giải quyết các vấn đề ngay cả những việc mà các công ty khác chưa coi là "vấn đề". Kết quả là công ty đã thành công với những cải tiến rộng khắp, những sản phẩm như giấy nhám không thấm nước, băng Scotch, hay miếng ghi chép Post-it. Nó cũng thôi thúc P&G chấp nhận nguyên tắc phân chia lợi nhuận và cổ phần hóa từ những năm 1880, nghĩa là rất lâu trước khi những điều này trở nên thịnh hành, phổ biến; thôi thúc Sony tung ra các sản phẩm dẫn đầu những năm 1950, khi mà không óc công ty nào dám làm điều tương tự. Do những thôi thúc ấy mà Boeing đã lao vào những canh bạc mạo hiểm nhất trong lịch sử kinh doanh như quyết định sản xuất Boeing 747, dù chưa chắc về nhu cầu thị trường, những thôi thúc được William E.Boeing xác định rõ ngay từ những ngày đầu thành lập công ty:

Không ai nên nói về một ý tưởng rằng điều đó không thể thực hiện được. Công việc của chúng tôi là liên tục nghiên cứu, thử nghiệm và đưa các kết quả từ phòng thí nghiệm vào sản xuất chừng nào có thể, với quyết tâm không để vuột mất bất cứ tiến bộ nào trong ngành hàng không.

Thực sự với khát khao tiến bộ, người ta sẽ không bao giờ bằng lòng với hiện tại, dù hiện tại đó có tốt đẹp thế nào đi nữa. Giống như một cái gì đó âm ỉ, nhức nhối, cháy bỏng, niềm khao khát này không bao giờ được thảo mãn hay chấm dứt, ngay cả khi đã đạt được những thành công to lớn, với quan niệm: "Luôn có thể làm tốt hơn, đi xa hơn, tìm ra những khả năng mới hơn". Như Henry Ford đã nói, "Bạn phải luôn làm việc và tiến về phía trước".
Trích cuốn Xây dựng để trường tồn - NXB Trẻ

 

Thứ Hai, 10 tháng 10, 2016

Windows Store Apps - Buổi 3

Windows Store Apps - Buổi 3

 1. Ví dụ : JsonValue

Kết quả sau khi Run :

* Thêm
* Kết quả :

2. Ví dụ 2 : JsonObject

 * Output :